源代码安装 MySQL 5.6.28

最近做项目,之前我是用 Oracle 的,如果在 Windows 环境,无论是安装,还是配置,都很容易;Linux 环境没试过,刚毕业时的那个公司,是 Linux 环境。一般等到开发的时候,数据库早按完了,这活轮不到开发干。现在,跳槽后,公司用 MySQL~遇到两个问题:

1,对一个包含二进制字段的表,开发环境和测试环境的性能差异巨大,都是虚拟机。开发环境,Windows 平台,执行 INSERT 很快,几毫秒的事;而测试环境,Linux 平台,执行 INSERT 慢到有点说不过去了,几十毫秒,差距将近 30 倍。如果是 Oracle,前期的话,即便什么不做,也很快;

网上有些人告诉我,应该查看一下机器的负载,比如,磁盘、IO 等,我倒是想,也不是产品环境,不至于差异这么大吧,并且一直就没快过~

2,产品环境,70W 数据,执行 SELECT * FROM T1 WHERE FLAG=0 ORDER BY ID ASC,如果不为 FLAG 字段建索引,执行时间都快 1 秒啦。这要是在 Oracle 上,绝对不可能发生~

这促使我自己在 Linux 上安装 MySQL 源代码。没事时,练习、研究一下~

用源代码方式安装的好处是,编译时,可以针对自己的硬件环境。只是安装相比 RPM 要麻烦点,不过“会者不难,难者不会”,多练练就好了~

期间,最开始用的是 RPM 包,挺容易,尝试了 Percona 和社区版,最后,又用源代码安装了一遍~

本文是以 MySQL 源代码方式进行安装。参考众多资料,折腾好几天,总算安上了~如果安装时,缺少必要的包,就用 yum 安装,比如 cmake、perl 等~

创建 MySQL 用户和组

这步的目的,是执行 mysql_install_db 创建 MySQL 授权表,以及启动 MySQL 时,都需要指定用户名。所以,它是第一步。

第一步:为以后的 MySQL 服务 mysqld 增加一个登录的用户和组,用户名和组名均为“mysql”。如果用了其他名称,在后面的操作中也要替换。

[root@linuxidc usr]# groupadd mysql   [root@linuxidc usr]# useradd -g mysql mysql

解压 MySQL 源代码包

假设你把 MySQL 源代码包放在 /usr/local/src 目录下。

第二步:解压 mysql 软件包。

[root@linuxidc /]# cd /usr/local/src   [root@linuxidc src]# ls   mysql-5.6.28.tar.gz   [root@linuxidc src]# tar zxf mysql-5.6.28.tar.gz   [root@linuxidc src]# ls   mysql-5.6.28 mysql-5.6.28.tar.gz   [root@linuxidc src]#

此时,会看见一个新目录 mysql-5.6.28。

其中,解压时,-x 为解压;-z 为包有gzip属性;-f 为使用档案名字。当然,也可以用 -v 显示解压过程。

生成配置安装文件

以下两步任选其一,MySQL 早期版本,提供 Configure 文件以便在编译安装前进行配置;但在高版本已不提供该文件,而是采用 cmake。

假设,MySQL 安装到 /usr/local/mysql 下。

第三步:

使用“Configure”命令配置安装需要的系统环境,并生成安装配置文件 

[root@linuxidc mysql-5.6.28]# ./configure \ > --prefix=/usr/local/mysql \ > --with-extra-charsets=all

如果采用 cmake 就跳过这步。

使用“cmake”配置安装需要的系统环境,并生成安装配置文件 

[root@linuxidc mysql-5.6.28]# cmake \ > -DDEFAULT_CHARSET=utf8 > -DDEFAULT_COLLATION=utf8_general_ci > -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ > -DEXTRA_CHARSETS=all

指定 MySQL 的安装位置为“/usr/local/mysql”,以及采用的默认字符集等。

我在试验时,如果不配置字符集的相关选项,在执行后面 mysql_install_db  那步时会报各种字符集错误。

cmake 具体参数,参看 MySQL Source-Configuration Options

编译和安装 

编译和安装很简单。

第四步:使用“make”命令编译源代码文件,并生成安装文件,再用“make install”命令安装。

[root@linuxidc mysql-5.6.28]# make && make install

或是编译与安装分开执行:

[root@linuxidc mysql-5.6.28]# make

[root@linuxidc mysql-5.6.28]# make install

自此,MySQL 就会安装到 /usr/local/mysql 下。

MySQL 配置文件 

第五步:创建 MySQL 数据库服务器的配置文件,可以使用源代码包 support-files 目录中的 my-default.cnf 文件作为模板,将其复制到 /etc/ 目录下,重命名为“my.cnf”文件。

[root@linuxidc /]# cd /usr/local/src/mysql-5.6.28

[root@linuxidc mysql-5.6.28]# cp support-files/my-default.cnf /etc/my.cnf

并用 vi /etc/my.cnf 修改该配置文件,内容如下。

[mysqld] basedir = /usr/local/mysql datadir = /usr/local/mysql/data sock = /tmp/mysql.sock

模板文件不只是源代码中有,安装目录中也有。

创建 MySQL 授权表

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/56a66177106376b19a686c6c69cb3d8d.html