RHEL6.5源码安装mysql-5.7.11
源码编译mysql-5.7.11
下载地址:
http://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.11.tar.gz
http://liquidtelecom.dl.sourceforge.net/project/boost/boost/1.59.0/boost_1_59_0.tar.gz
安装必要的资源包
建议使用网络yum源,RHEL6.5光盘中自带的软件包版本不够,mysql-5.7.11.tar.gz的编译对软件包的版本要求比较高,其中cmake的版本要不低于2.8
网络yum源配置可以参考http://blog.sina.com.cn/s/blog_14e8c64ca0102vztv.html
[root@xuegod163 ~]# yum -y install gcc gcc-c++ autoconf automake zlib* libxml* ncurses-devel libtool-ltdl-devel* make cmake
删除系统自带mysql
[root@xuegod63 mysql-5.7.11]# yum -y remove mysql
添加用户和组
[root@xuegod163 ~]# groupadd mysql
[root@xuegod163 ~]# useradd -M -s /sbin/nologin -r -g mysql mysql
创建安装目录和数据存放目录
添加一块新的硬盘,创建分区sdb1并分配所有的空间
[root@xuegod163 ~]# mkdir /server
[root@xuegod163 ~]# mount /dev/sdb1 /server/
开机自动挂载
echo "/dev/sdb1 /server ext4 defaults 0 0" >> /etc/fstab
注:mysql-5.7.11.tar.gz安装时占用空间比较大,虚拟机环境下建议新添加一块硬盘进行安装,真实服务器中不需要
[root@xuegod163 ~]# mkdir -p /server/mysql/data
上传源码包包到/server目录下或者直接wget进行下载源码包
解压源码包
[root@xuegod163 server]# tar zxf boost_1_59_0.tar.gz
[root@xuegod163 server]# tar zxf mysql-5.7.11.tar.gz
修改boost解压目录名称
[root@xuegod163 server]# mv boost_1_59_0 boost
卸载系统自带的boost库
[root@xuegod163 ~]# yum -y remove boost-*
注:从mysql5.7.5之后源码编译boost库是必须的
配置相关参数
[root@xuegod163 ~]# cd mysql-5.7.11
[root@xuegod163 mysql-5.7.11]# 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/boost
编译的参数可以参考http://dev.mysql.com/doc/refman/5.6/en/source-configuration-options.html
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
编译
mysql-5.7.11.tar.gz编译时会占用大量的系统资源,建议使用多个核心同时进行编译,否则可能会编译失败
[root@xuegod163 mysql-5.7.11]# make -j 4
查看服务器CPU核心数
[root@xuegod163 ~]# grep processor /proc/cpuinfo | wc -l
4
安装
[root@xuegod163 mysql-5.7.11]# make install
修改目录权限
[root@xuegod163 ~]# chown -R mysql:mysql /server/mysql
生成配置文件
[root@xuegod163 ~]# mv /etc/my.cnf{,.bak}
[root@xuegod163 ~]# cp /server/mysql/support-files/my-default.cnf /etc/my.cnf
生成服务启动脚本
[root@xuegod163 ~]# cp /server/mysql/support-files/mysql.server /etc/init.d/mysqld
[root@xuegod163 ~]# chmod 755 /etc/init.d/mysqld
[root@xuegod163 ~]# chkconfig --add mysqld
[root@xuegod163 ~]# chkconfig mysqld on
[root@xuegod163 ~]# chkconfig --list mysqld
mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off
初始化数据库
[root@xuegod163 ~]# /server/mysql/bin/mysqld --initialize-insecure --user=mysql --basedir=/server/mysql --datadir=/server/mysql/data
启动服务
[root@xuegod163 ~]# service mysqld start
Starting MySQL [ OK ]
添加path路径: vim /etc/profile 添加下面2行 在文件的结尾
export MYSQL_HOME=/server/mysql
export PATH=$PATH:$MYSQL_HOME/bin
修改MySQL密码
[root@xuegod163 ~]# mysql
mysql> set password=password('123456');