解压安装包
[root@db01 local]# tar xf mysql-5.7.26-linux-glibc2.12-x86_64.tar.g
[root@db01 local]# ln -s mysql-5.7.26-linux-glibc2.12-x86_64 mysql
建数据目录
[root@db01 local]# mkdir -p /data/mysql/data
[root@db01 local]# mkdir -p /data/mysql/binlog
建用户
[root@db01 local]# userdel -r mysql
[root@db01 local]# useradd -s /sbin/nologin mysql
处理遗留的mariadb
[root@db01 local]# yum remove mariadb*
授权
[root@db01 local]# chown -R mysql.mysql /data /usr/local/mysql*
初始化数据
[root@db01 ~]# vim /etc/profile
#添加一下一行
export PATH=/usr/local/mysql/bin:$PATH
[root@db01 ~]# source /etc/profile
[root@db01 ~]# mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql/data
配置文件准备
[root@db01 ~]# vim /etc/my.cnf
[mysqld]
user=mysql
basedir=/usr/local/mysql
datadir=/data/mysql/data
socket=/tmp/mysql.sock
[mysql]
socket=/tmp/mysql.sock
准备启动脚本
[root@db01 ~]# cd /usr/local/mysql/support-files/
[root@db01 support-files]# cp mysql.server /etc/init.d/mysqld
[root@db01 support-files]# chkconfig --add mysqld
[root@db01 support-files]# systemctl start mysqld
[root@db01 support-files]# systemctl stop mysqld
[root@db01 support-files]# systemctl restart mysqld
[root@db01 support-files]# mysql
多实例管理
一. 建立目录
[root@db01 ~]# mkdir -p /data/330{7..9}/data
[root@db01 ~]# chown -R mysql.mysql /data
二. 准备配置文件
cat >/data/3307/my.cnf <<EOF
[mysql]
socket=/tmp/mysql3307.sock
[mysqld]
user=mysql
basedir=/data/app/mysql
datadir=/data/3307/data
socket=/tmp/mysql3307.sock
port=3307
server_id=7
EOF
cat >/data/3308/my.cnf <<EOF
[mysql]
socket=/tmp/mysql3308.sock
[mysqld]
user=mysql
basedir=/data/app/mysql
datadir=/data/3308/data
socket=/tmp/mysql3308.sock
port=3308
server_id=8
EOF
cat >/data/3309/my.cnf <<EOF
[mysql]
socket=/tmp/mysql3309.sock
[mysqld]
user=mysql
basedir=/data/app/mysql
datadir=/data/3309/data
socket=/tmp/mysql3309.sock
port=3309
server_id=9
EOF
三. 初始化数据
mysqld --initialize-insecure --user=mysql --basedir=/data/app/mysql --datadir=/data/3307/data
mysqld --initialize-insecure --user=mysql --basedir=/data/app/mysql --datadir=/data/3308/data
mysqld --initialize-insecure --user=mysql --basedir=/data/app/mysql --datadir=/data/3309/data
四. 准备启动脚本
cat >/etc/systemd/system/mysqld3307.service<<EOF
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/data/app/mysql/bin/mysqld --defaults-file=/data/3307/my.cnf
LimitNOFILE = 5000
EOF
cat >/etc/systemd/system/mysqld3308.service<<EOF
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/data/app/mysql/bin/mysqld --defaults-file=/data/3308/my.cnf
LimitNOFILE = 5000
EOF
cat >/etc/systemd/system/mysqld3309.service<<EOF
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/data/app/mysql/bin/mysqld --defaults-file=/data/3309/my.cnf
LimitNOFILE = 5000
EOF
五 .启动多实例
[root@db01 ~]# systemctl start mysqld3307
[root@db01 ~]# systemctl start mysqld3308
[root@db01 ~]# systemctl start mysqld3309
六. 验证
[root@db01 ~]# netstat -tulnp