环境说明 :
centos7.4 64位虚拟机
mysql5.7.21.tar.gz 编译安装需要虚拟机2G内存
安装步骤如下:
1、安装依赖包:
cmake:由于从 MySQL5.5 版本开始弃用了常规的 configure 编译方法,所以需要 CMake 编译
器,用于设置 mysql 的编译参数。如:安装目录、数据存放目录、字符编码、排序规则等。
GCC 是 Linux 下的 C 语言编译工具,mysql 源码编译完全由 C 和 C++编写,要求必须安装
GCC
bison:Linux 下 C/C++语法分析器
ncurses:字符终端处理库
# yum -y install gcc gcc-c++ ncurses ncurses-devel bison libgcrypt perl make cmake
2、建立用户,安装目录和数据目录权限
# groupadd mysql
# useradd -g mysql -s /bin/false -M mysql
# mkdir -p /data/mysql/
# mkdir /usr/local/mysql
# chown -R mysql:mysql /data/mysql/
3、下载boost
Boost #从 MySQL 5.7.5 开始 Boost 库是必需的,mysql 源码中用到了 C++的 Boost 库,要求
必须安装 boost1.59.0 或以上版本
# mkdir /usr/local/boost
# cd /usr/local/src/
# wget https://sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.tar.gz
# tar -xvf boost_1_59_0.tar.gz
# mv boost_1_59_0/* /usr/local/boost/
4、编译安装mysql
# cd /usr/local/src
# tar -xvf mysql-5.7.21.tar.gz
# cd mysql-5.7.21
# cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/data/mysql/ -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock -DMYSQL_USER=mysql -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DENABLE_DOWNLOADS=1 -DDOWNLOAD_BOOST=1 -DWITH_BOOST=/usr/local/boost
配置解释: -DCMAKE_INSTALL_PREFIX=/usr/local/mysql [MySQL 安装的根目 录]
-DMYSQL_DATADIR=/usr/local/mysql /data [MySQL 数据库文件存放目录]
-DSYSCONFDIR=/etc [MySQL 配置文件所在目录]
-DWITH_MYISAM_STORAGE_ENGINE=1 [添加 MYISAM 引擎支持 ]
-DWITH_INNOBASE_STORAGE_ENGINE=1 [添加 InnoDB 引擎支持 ]
-DWITH_ARCHIVE_STORAGE_ENGINE=1 [添加 ARCHIVE 引擎支持 ]
-DMYSQL_UNIX_ADDR=/usr/local/mysql /mysql.sock [指定 mysql.sock 位置 ]
-DWITH_PARTITION_STORAGE_ENGINE=1 [安装支持数据库分区 ]
-DEXTRA_CHARSETS=all [使 MySQL 支持所有的扩展字符]
-DDEFAULT_CHARSET=utf8 [设置 MySQL 的默认字符集为 utf8]
-DDEFAULT_COLLATION=utf8_general_ci [设置默认字符集校对规则 ]
-DWITH-SYSTEMD=1 [可以使用 systemd 控制 mysql 服务]
-DWITH_BOOST=/usr/local/boost [指向 boost 库所在目录]
更多参数执行 [root@localhost mysql-5.7.13]# cmake . –LH
# make && make install
5、mysql执行命令加入系统环境变量
# echo "export PATH=$PATH:/usr/local/mysql/bin" >>/etc/profile
# source /etc/profile
6、初始化
初始化完毕后在最后一行会显示root用户临时密码( A temporary password is generated for root@localhost:。。。。。)
# chown -R mysql:mysql /usr/local/mysql
# cd /usr/local/mysql/bin/
# ./mysqld --initialize --user=mysql --basedir=/usr/local/mysql/ --datadir=/data/mysql/
7、修改my.cnf配置文件
# cat /etc/my.cnf
[mysqld]
datadir = /data/mysql
socket = /usr/local/mysql/mysql.sock
log_error = /data/mysql/mysql-error.log
8、启动mysql
# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
# chmod 755 /etc/init.d/mysqld
# chkconfig --add mysqld
# chkconfig mysqld on
# systemctl restart mysqld
9、登陆数据库(密码为第6步初始化后最后一行所显示的临时密码)
# mysql -uroot -p