1、准备环境。
# yum install cmake gcc gcc-c++ bison libaio-devel.x86_64 ncurses ncurses-devel
2、 下载并解压MySQL源码包(含boost)。
# tar -zxvf mysql-boost-5.7.16.tar.gz
3、在MySQL源码目录中创建debug目录用于存放编译中间文件等,防止污染源码目录。
# cd mysql-5.7.16
# mkdir debug
# cd debug
4、通过CMake命令生成编译环境。
cmake .. -DBUILD_CONFIG=mysql_release \
-DINSTALL_LAYOUT=STANDALONE \
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
-DENABLE_DTRACE=OFF \
-DWITH_EMBEDDED_SERVER=OFF \
-DWITH_INNOBASE_STORAGE_ENGINE=ON \
-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=../boost
参数名
备注
CMAKE_BUILD_TYPE
指定编译版本的选项
CMAKE_INSTALL_PREFIX
指定MySQL安装的根目录
ENABLED_PROFIING
指定是否打开profile
MYSQL_DATADIR
指定默认数据库路径
OPTIMIZER_TRACE
指定是否打开优化器TRACE模块
WITH_ARCHIVE_STORAGE_ENGINE
指定是否支持Archive存储引擎
WITH_INNOBASE_STORAGE_ENGINE
指定是否支持InnoDB存储引擎
WITH_BLACKHOLE _STORAGE_ENGINE
指定是否支持BLACKHOLE存储引擎
WITH_EXAMPLE _STORAGE_ENGINE
指定是否支持Example存储引擎
WITH_FEDERATED _STORAGE_ENGINE
指定是否支持Federated存储引擎
WITH_INNODB _MEMCACHED
指定是否支持INNODB的MEMCACHED
WITH_PARTITION_STORAGE_ENGINE
指定是否支持partition存储引擎
WITH_PERFSCHEMA_STORAGE_ENGINE
指定是否支持信息模式存储引擎
5、在当前目录下使用make命令开启24个线程进行编译
# make
6、安装
# make install
7、创建配置文件目录、数据目录和配置文件
# mkdir -p /data/mysql/3306
# mkdir /var/mysql/conf
# vim /var/mysql/conf/3306.conf
配置文件内容:
# MySQL服务器端配置部分
[mysqld]
# 客户端端口
port=3306
# 数据保存目录
datadir=/data/mysql/3306
# 错误日志文件
log_error=/data/mysql/3306/error.log
# MySQL安装的根目录
basedir=/var/mysql/
8、使用mysql用户初始化MySQL默认数据库
# /var/mysql/bin/mysqld --defaults-file=/var/mysql/conf/3306.cnf --initialize --user=mysql
备注:所有的数据目录及文件都是由mysql用户和组创建。MySQL 5.7新加入sys库。
9、通过mysql用户启动MySQL服务器
# /var/mysql/bin/mysqld --defaults-file=/var/mysql/conf/3306.cnf --user=mysql
10、查看MySQL服务进程
# ps -ef|grep mysqld
mysql 48157 2333 1 23:06 pts/1 00:00:00 /var/mysql/bin/mysqld --defaults-file=/var/mysql/conf/3306.cnf --user=mysql
11、使用root用户和随机密码登录系统,然后为root用户修改密码。随机密码输出在error.log文件中。
# /var/mysql/bin/mysql -uroot -p
Enter password:
mysql> alter user 'root'@'localhost' identified by '新密码';
Query OK, 0 rows affected (0.00 sec)