[toc]
CentOS7编译安装MySQL5.7
1.安装依赖包
yum -y install -y gcc gcc-c++ automake autoconf cmake bison-devel ncurses-devel libaio-devel openssl-devel
2.下载boost
:::tip说明
5.7版本源码编译安装需要下载一个Boost C++ 1.59.0(这是一组扩充C++功能的经过同行评审(Peer-reviewed)且开放源代码程序库。大多数的函数为了能够以开放源代码、封闭项目的方式运作,而授权于Boost软件许可协议(Boost Software License)之下。)
:::
wget https://sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.tar.gz
3.解压缩boost至 /usr/local
下
tar xf boost_1_59_0.tar.gz -C /usr/local
4.下载MySQL5.7源码包
export MYSQL_VERSION=5.7.30
wget https://cdn.mysql.com/archives/mysql-5.7/mysql-${MYSQL_VERSION}.tar.gz
5.解压缩源码包
tar xf mysql-${MYSQL_VERSION}.tar.gz
6.进入解压目录,开始编译安装
# 进入到解压目录
cd mysql-${MYSQL_VERSION}
# 进行cmake
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql-${MYSQL_VERSION} \
-DMYSQL_USER=mysql \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_DEBUG=0 \
-DMYSQL_MAINTAINER_MODE=0 \
-DWITH_ZLIB:STRING=bundled \
-DWITH_SYSTEMD=1 \
-DDOWNLOAD_BOOST=0 \
-DWITH_DEBUG=0 \
-DWITH_BOOST=/usr/local/boost_1_59_0
# 编译并安装
make -j`nproc` && make install
7.做目录软连接
ln -s /usr/local/mysql-${MYSQL_VERSION} /usr/local/mysql
8.创建mysql用户
useradd -M -s /bin/nologin mysql
9.编辑主配置文件
:::caution注意
⚠️如果指定了mysql的socket文件位置,则必须添加[client]
标签并同时指定socket文件位置,否则客户端会从/tmp下找socket文件
:::
# 备份/etc/my.cnf
mv /etc/my.cnf /etc/my.cnf.old
# 以下配置为最精简版,可根据实际情况进行相应设置
cat > /etc/my.cnf <<'EOF'
[mysqld]
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
socket=/var/lib/mysql/mysql.sock
user=mysql
log-error=/usr/local/mysql/data/error.log
[client]
socket=/var/lib/mysql/mysql.sock
EOF
10.创建socket文件目录
mkdir -p /var/lib/mysql