欧阳简之 > centos7.4 源码安装 MySQL5.7

热爱代码,对每一行代码保持一颗敬畏之心。

安装环境:CentOS Linux release 7.4 (Core)

卸载MariaDB

注意:一定要将mariaDB包和自带mysql包卸载干净,否则安装时出现各种奇妙错误,导致失败。

rpm -qa | grep -i mariadb                           //查看有没有安装mariadb 
rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64    //如果有,卸载MariaDB 

安装依赖包

yum -y install gcc gcc-c++ ncurses ncurses-devel cmake bison bison-devel

下载源码包

cd /root/
wget -c https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.23.tar.gz
tar -zvxf mysql-5.7.23.tar.gz
wget -c https://nchc.dl.sourceforge.net/project/boost/boost/1.59.0/boost_1_59_0.tar.gz
tar -zvxf boost_1_59_0.tar.gz
cd mysql-5.7.23

编译安装

预编译

cmake -DCMAKE_INSTALL_PREFIX=/data/app/mysql \
-DMYSQL_DATADIR=/data/app/mysql/data \
-DMYSQL_UNIX_ADDR=/data/app/mysql/mysql.sock \
-DWITH_BOOST=../boost_1_59_0 \
-DSYSCONFDIR=/data/app/mysql/etc \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITH_FEDERATED_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DENABLE_DTRACE=0 \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci \
-DWITH_EMBEDDED_SERVER=1

配置说明

-DCMAKE_INSTALL_PREFIX=/data/app/mysql    //设置安装目录
-DMYSQL_DATADIR=/data/app/mysql/data     //设置数据库存放目录             
-DMYSQL_UNIX_ADDR=/data/app/mysql/mysql.sock   //设置UNIX socket目录
-DDEFAULT_CHARSET=utf8mb4     //设置默认字符集
-DDEFAULT_COLLATION=utf8mb4_general_ci     //设置默认校对规则
-DWITH_INNOBASE_STORAGE_ENGINE=1    //添加InnoDB引擎支持
-DSYSCONFDIR=/data/app/mysql/etc   //设置my.cnf配置文件的所在目录,默认为安装目录

编译安装

make && make install

配置

新增mysql用户组及用户

groupadd -r mysql
useradd -r -g mysql mysql

新增mysql数据目录

mkdir -p /data/app/mysql/{data,log,temp,run}
chown -R mysql.mysql /data/app/mysql

数据库初始化

/data/app/mysql/bin/mysqld --initialize-insecure --user=mysql --basedir=/data/app/mysql --datadir=/data/app/mysql/data

启动

cp /data/app/mysql/support-files/mysql.server /etc/init.d/mysqld
/etc/init.d/mysqld start

其他

添加服务

cat > /usr/lib/systemd/system/mysql.service << EOF
[Unit]
Description=MySQL Database Server Engine
After=network.target syslog.target

[Service]
Type=simple
User=mysql
Group=mysql
LimitNOFILE=65535
LimitNPROC=65535
PIDFile=/data/app/mysql/run/mysqld.pid
ExecStart=/data/app/mysql/bin/mysqld_safe --defaults-file=/data/app/mysql/etc/my.cnf --datadir=/data/app/mysql/data --pid-file=/data/app/mysql/run/mysqld.pid --log-error=/data/app/mysql/log/mysql-error.log "$*"
ExecReload=/usr/bin/kill -HUP $MAINPID
ExecStop=/usr/bin/kill $MAINPID

[Install]
WantedBy=multi-user.target
EOF
添加环境变量
cat > /etc/profile.d/mysql.sh << EOF
# MySQL CONFIG
PATH=$PATH:/data/app/mysql/bin
export PATH
EOF
source /etc/profile.d/mysql.sh
tagged by linux mysql