Linux下源码编译mysql-5.7.14
基础环境
RHEL6.5X64
mysql-5.7.14.tar.gz
mysql-5.7.14-boost.tar.gz #经测试此软件包不需要额外boost-1.59.0依赖库所以上面mysql-5.7.14可以省略
配置网络yum源
以Centos6.5源为例
[root@zlf~]#wget -O
/etc/yum.repos.d/CentOS-Base.repo
http://mirrors.aliyun.com/repo/Centos-6.repo
[root@zlf~]#sed -i 's/$releasever/6/g'
/etc/yum.repos.d/CentOS-Base.repo
[root@zlf~]#yum clean all
[root@zlf~]#yum list
安装必要的依赖库以及升级cmake
#cmake版本要求在2.8以上
[root@zlf~]#yum -y install gcc gcc-c++ autoconf automake
zlib* libxml* ncurses-devel libtool-ltdl-devel* make
cmake
移除系统自带mysql以及mysql-boost库
[root@zlf~]#yum –y remove mysql boost*
创建服务文件夹方便安装管理
[root@zlf~]#mkdir /server
[root@zlf~]#cd /server
上传软件包
[root@zlf server]#tar zxvf mysql-5.7.14.tar.gz &&
tar zxvf mysql-5.7.14-boost.tar.gz
创建mysql用户组
[root@zlf~]#groupadd mysql
[root@zlf~]#useradd –M –s /sbin/nologin –r –g mysql
mysql
[root@zlf mysql-5.7.14]# cmake
-DCMAKE_INSTALL_PREFIX=/server/mysql \
-DMYSQL_DATADIR=/server/mysql/data
\
-DSYSCONFDIR=/etc
\
-DWITH_MYISAM_STORAGE_ENGINE=1
\
-DWITH_INNOBASE_STORAGE_ENGINE=1
\
-DWITH_MEMORY_STORAGE_ENGINE=1
\
-DWITH_READLINE=1
\
-DMYSQL_UNIX_ADDR=/server/mysql/mysql.sock
\
-DMYSQL_TCP_PORT=3306
\
-DENABLED_LOCAL_INFILE=1
\
-DWITH_PARTITION_STORAGE_ENGINE=1
\
-DEXTRA_CHARSETS=all
\
-DDEFAULT_CHARSET=utf8
\
-DDEFAULT_COLLATION=utf8_general_ci
\
-DDOWNLOAD_BOOST=1
\
-DWITH_BOOST=
/server/mysql-5.7.14/boost/boost_1_59_0/
注:
CMAKE_INSTALL_PREFIX:指定MySQL程序的安装目录,默认/usr/local/mysql
DEFAULT_CHARSET:指定服务器默认字符集,默认latin1
DEFAULT_COLLATION:指定服务器默认的校对规则,默认latin1_general_ci
ENABLED_LOCAL_INFILE:指定是否允许本地执行LOAD
DATA INFILE,默认OFF
WITH_COMMENT:指定编译备注信息WITH_xxx_STORAGE_ENGINE:指定静态编译到mysql的存储引擎,MyISAM,MERGE,MEMBER以及CSV四种引擎默认即被编译至服务器,不需要特别指定。WITHOUT_xxx_STORAGE_ENGINE:指定不编译的存储引擎SYSCONFDIR:初始化参数文件目录MYSQL_DATADIR:数据文件目录MYSQL_TCP_PORT:服务端口号,默认3306
MYSQL_UNIX_ADDR:socket文件路径,默认/tmp/mysql.sock
编译安装
[root@zlf mysql-5.7.14]#make –j 4 && make
install
修改目录权限
[root@zlf~]#chown –R mysql:mysql /server/mysql
生成配置文件
[root@zlf~]#mv /etc/my.cnf{,.bak}
[root@zlf~]#cp /server/mysql/support-files/my-default.cnf
/etc/my.cnf
生成服务启动脚本
[root@zlf~]#cp /server/mysql/support-files/mysql.server
/etc/init.d/mysqld
[root@zlf~]#chmod 755 /etc/init.d/mysql
[root@zlf~]#chkconfig --add mysqld
[root@zlf~]#chkconfig mysqld on
[root@zlf~]#chkconfig --list mysqld
mysqld
0:off 1:off 2:on 3:on 4:on 5:on 6:off
初始化数据库
[root@zlf~]#/server/mysql/bin/mysqld --initialize-insecure
--user=mysql --basedir=/server/mysql
--datadir=/server/mysql/data
启动数据库
[root@zlf~]#service mysqld start
Starting MySQL [ OK
]