Fenying

Angus’ Home.


26 Dec 2016

第七章 安装最新版 MySQL

本章编译安装 MySQL 服务器的 5.7.16 版本。

0. 创建用户和目录

本服务器中准备使用名为 mysql 的用户运行 MySQL,所以先创建用户。

sudo -u admin mkdir $MYSQL_DATA -p
chown mysql $MYSQL_DATA

1. 下载源码和依赖包

本处使用 mysql-boost-5.7.16.tar.gz。请自行下载对应的 .tgz 文件,并放到 /mnt/temp 目录下。

使用 Yum 安装依赖包,编译 MySQL 须用到。

yum install -y cmake bison ncurses-devel

2. 配置编译

tar -zxvf mysql-boost-5.7.16.tar.gz
cd mysql-5.7.16
cmake \
 -DCMAKE_INSTALL_PREFIX=$MYSQL_ROOT \
 -DMYSQL_DATADIR=$MYSQL_DATA \
 -DWITH_ZLIB=/usr/local/zlib \
 -DDEFAULT_CHARSET=utf8 \
 -DDEFAULT_COLLATION=utf8_general_ci \
 -DWITH_EXTRA_CHARSETS=ALL \
 -DMYSQL_USER=mysql \
 -DWITH_MYISAM_STORAGE_ENGINE=1 \
 -DWITH_INNOBASE_STORAGE_ENGINE=1 \
 -DWITH_ARCHIVE_STORAGE_ENGINE=1 \
 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
 -DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
 -DWITH_BOOST=./boost \
 -DMYSQL_TCP_PORT=3306 \
 -DMYSQL_UNIX_ADDR=$MCOS_SOCKS/mysql.sock \
 -DSYSCONFDIR=$MYSQL_CONFIG

3. 编译安装

make -j 4
make install
cp $MYSQL_ROOT/support-files/mysql.server /etc/init.d/mysqld
chmod 0700 /etc/init.d/mysqld
rm /etc/my* -Rf   # 清除默认的 MySQL 配置
 ln -s /usr/local/mysql/bin/mysql /usr/bin

若 make 的过程中出现错误,如果是 waiting for other build tasks,可以再次执行 make 命令继续,其他情况请自行搜索解决。

4. 初始化数据库

$MYSQL_ROOT/bin/mysqld \
 --initialize-insecure \
 --user=mysql \
 --basedir=$MYSQL_ROOT \
 --datadir=$MYSQL_DATA
cp $MYSQL_ROOT/support-files/my-default.cnf $MCOS_CONFIG/my.cnf

5. 配置 MySQL

修改文件 /www/config/my.cnf 如下内容:

basedir = /usr/local/mysql
datadir = /www/database/mysql
port = 3306
pid-file = /www/pids/mysql.pid
# server_id = .....
socket = /www/socks/mysql.sock

6. 启动服务

systemctl start mysqld

7. 清理文件

以下文件如果不需要可以删掉,减少空间占用

rm -f $MYSQL_ROOT/lib/*.a
rm -f $MYSQL_ROOT/mysql-test -rf
该文章根据 CC-BY-4.0 协议发表,转载请遵循该协议。
本文地址:https://fenying.net/book/minicentos-handbook/07.compile-mysql/

comments powered by Disqus