一、下载安装包
(1). 下载MySQL源码 (进入/usr/local/src目录,使用wget下载)
cd /usr/local/src
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.20.tar.gz
(2). 下载 boost
wget --no-check-certificate http://sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.tar.gz
二. 编译安装
(1). 安装必要的软件依赖
yum install -y cmake bison bison-devel libaio-devel gcc gcc-c++ ncurses-devel
(2). 解压缩MySQL源文件
tar -zxvf mysql-5.7.20.tar.gz
将boost的压缩包移动至解压后的源文件目录内:
mv boost_1_59_0.tar.gz mysql-5.7.20
(3). 进入MySQL源文件目录,新建configure做为编译目录,并进入该目录
依次执行如下命令:
cd mysql-5.7.20
mkdir configure
cd configure
(4). 使用cmake进行生成编译环境
cmake .. -DBUILD_CONFIG=mysql_release
-DINSTALL_LAYOUT=STANDALONE
-DCMAKE_BUILD_TYPE=RelWithDebInfo
-DENABLE_DTRACE=OFF
-DWITH_EMBEDDED_SERVER=OFF
-DWITH_INNODB_MEMCACHED=ON
-DWITH_SSL=bundled
-DWITH_ZLIB=system
-DWITH_PAM=ON
-DCMAKE_INSTALL_PREFIX=/var/mysql/
-DINSTALL_PLUGINDIR="/var/mysql/lib/plugin"
-DDEFAULT_CHARSET=utf8
-DDEFAULT_COLLATION=utf8_general_ci
-DWITH_EDITLINE=bundled
-DFEATURE_SET=community
-DCOMPILATION_COMMENT="MySQL Server (GPL)"
-DWITH_DEBUG=OFF
-DWITH_BOOST=..
编译完成后如图:
(5). 使用make进行编译
make
(6). 安装MySQL
make install
三. 初始化数据库
(1). 添加mysql用户
useradd -s /bin/bash mysql
(2). 新建数据库文件夹,并更改用户为mysql
mkdir /mysql_data
mkdir /var/mysql/log
chown -R mysql:mysql /mysql_data/
chown -R mysql:mysql /var/mysql/log
(3). 修改配置文件
vim /etc/my.cnf
将[mysqld]项下的内容替换为:
port=3306
datadir=/mysql_data
log_error=/var/mysql/log/error.log
basedir=/var/mysql/
将[mysqld_safe]下的两行代码注释掉,如图:
(4) 初始化数据库
/var/mysql/bin/mysqld --initialize --user=mysql
四. 配置启动文件及环境变更
(1). 从模板文件中复制启动文件:
cp /var/mysql/support-files/mysql.server /etc/init.d/mysqld
(2). 修改启动文件:
vim /etc/init.d/mysqld
找到
basedir=
datadir=
改成:
basedir=/var/mysql
datadir=/mysql_data
如图:
(3). 启动MySQL
/etc/init.d/mysqld start
或者
/var/mysql/support-files/mysql.server start
(4). 设置MySQL开机启动:
systemctl enable mysqld
(5). 配置MySQL环境变量
vim /root/.bash_profile
找到 PATH=$PATH:$HOME/bin,在后边追加 :/var/mysql/bin,如图:
修改完毕保存后执行:
source ~/.bash_profile
五、修改root的初始密码
(1). 查看root的初始密码
cat /var/mysql/log/error.log |grep 'temporary password'
2017-11-25T11:06:00.720431Z 1 [Note] A temporary password is generated for root@localhost: TpsFRvErh4_B
root@localhost: 后边的那串字符即为初始密码
(2). 登录MySQL并修改初始密码:
mysql -uroot -p
登录后立即修改初始密码:
alter user 'root'@'localhost' identified by 'your_password'
修改完成后会显示:Query OK, 0rows affected (0.00 sec)
至此,已经完成在 CentOS7 上手工编译、安装MySQL5.7.20全部过程