mysql 不同版本多实例_MySQL 不同版本多实例
1 规划
MySQL5.6 8.0软件包:
mysql-5.6.46-linux-glibc2.12-x86_64.tar.gzmysql-8.0.13-linux-glibc2.12-x86_64.tar.xz
配置文件 :/data/331{6..8}/my.cnf
数据目录 :/data/331{6..8}
初始化数据
日志目录 :/binlog/331{6..8}
端口 : port=3316,3317,3318server_id : server_id=16,17,18socket :/tmp/mysql{56,57,80}.sock
2 软连接不同版本软件,修改环境变量
cd /app/database/
rm -rf ./mysql58 # 删除软链接
ln-s mysql-5.6.46-linux-glibc2.12-x86_64 mysql56ln-s mysql-8.0.13-linux-glibc2.12-x86_64 mysql80
mv/etc/my.cnf /etc/my.cnf.bak
vim/etc/profile
# 注释掉以下信息
#export PATH=/app/database/mysql/bin:$PATH
vim .bash_profile
# 注释掉以下信息
#PATH=$PATH:$HOME/bin:/app/database/mysql/bin#复制一个新窗口
[root@master~]# mysql -V-bash: mysql: command not found
3 准备不同目录
rm -rf /data/331{6..8}/*
rm -rf /binlog/331{6..8}
mkdir -p /data/331{6..8}/data
mkdir -p /binlog/331{6..8}
chown -R mysql.mysql /data/* /binlog/*
4 准备配置文件
cat > /data/3316/my.cnf <
[mysqld]
basedir=/app/database/mysql56
datadir=/data/3316/data
socket=/tmp/mysql56.sock
log_error=/data/3316/mysql.log
port=3316
server_id=16
log_bin=/binlog/3316/mysql-bin
EOF
cat > /data/3318/my.cnf <
[mysqld]
basedir=/app/database/mysql80
datadir=/data/3318/data
socket=/tmp/mysql80.sock
log_error=/data/3318/mysql.log
port=3318
server_id=18
log_bin=/binlog/3318/mysql-bin
EOF
4 初始化数据
# 5.6
/app/database/mysql56/scripts/mysql_install_db --user=mysql --datadir=/data/3316/data --basedir=/app/database/mysql56
# 8.0
/app/database/mysql80/bin/mysqld --initialize-insecure --user=mysql --datadir=/data/3318/data --basedir=/app/database/mysql80
5 准备启动脚本
# 5.6
cat > /etc/systemd/system/mysqld56.service <
[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=/app/database/mysql56/bin/mysqld --defaults-file=/data/3316/my.cnf
LimitNOFILE = 5000
EOF
# 8.0
cat > /etc/systemd/system/mysqld80.service <
[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=/app/database/mysql80/bin/mysqld --defaults-file=/data/3318/my.cnf
LimitNOFILE = 5000
EOF
6 启动多实例
[root@master ~]# netstat -tulnp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1351/sshd
tcp60 0 :::22 :::* LISTEN 1351/sshd
[root@master ~]# systemctl start mysqld56
[root@master ~]# systemctl start mysqld80
[root@master~]# netstat -tulnpActive Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1351/sshd
tcp60 0 :::33060 :::* LISTEN 3229/mysqld
tcp60 0 :::3316 :::* LISTEN 3201/mysqld
tcp60 0 :::3318 :::* LISTEN 3229/mysqld
tcp60 0 :::22 :::* LISTEN 1351/sshd
7 登录多实例数据库
[root@master ~]# /app/database/mysql56/bin/mysql -S /tmp/mysql56.sock
Server version:5.6.46-log MySQL Community Server (GPL)
[root@master~]# /app/database/mysql80/bin/mysql -S /tmp/mysql80.sock
Server version:8.0.13 MySQL Community Server -GPL
[root@master~]# vim /etc/profile
export PATH=/app/database/mysql/bin:$PATH
[root@master~]# source /etc/profile
[root@master~]# mysql -V
mysql Ver14.14 Distrib 5.7.28, for linux-glibc2.12 (x86_64) usingEditLine wrapper
[root@master~]# mysql -S /tmp/mysql56.sock
Server version:5.6.46-log MySQL Community Server (GPL)
[root@master~]# mysql -S /tmp/mysql80.sock
Server version:8.0.13 MySQL Community Server -GPL
[root@master~]# mv /etc/my.cnf.bak /etc/my.cnf
[root@master~]# /etc/init.d/mysqld start
Starting MySQL.... SUCCESS![root@master~]# mysql
Server version:5.7.28MySQL Community Server (GPL)
[root@master~]# mysql -uroot -p
Server version:5.7.28MySQL Community Server (GPL)
[root@master~]# mysql -S /tmp/mysql56.sock
Server version:5.6.46-log MySQL Community Server (GPL)
[root@master~]# mysql -S /tmp/mysql80.sock
Server version:8.0.13 MySQL Community Server - GPL
5.7 和 8.0 的客户端可以连其他两个服务端,5.6 的客户端连8.0的服务端会报错
# 8.0
[root@master ~]# /app/database/mysql80/bin/mysql -S /tmp/mysql56.sockServer version:5.6.46-log MySQL Community Server (GPL)[root@master~]# /app/database/mysql80/bin/mysql -S /tmp/mysql.sockServer version:5.7.28MySQL Community Server (GPL)# 5.7
[root@master~]# /app/database/mysql/bin/mysql -S /tmp/mysql56.sockServer version:5.6.46-log MySQL Community Server (GPL)[root@master~]# /app/database/mysql/bin/mysql -S /tmp/mysql80.sockServer version:8.0.13 MySQL Community Server -GPL
# 5.6[root@master~]# /app/database/mysql56/bin/mysql -S /tmp/mysql.sockServer version:5.7.28MySQL Community Server (GPL)[root@master ~]# /app/database/mysql56/bin/mysql -S /tmp/mysql80.sock
ERROR 2059 (HY000): Authentication plugin 'caching_sha2_password' cannot be loaded: /usr/local/mysql/lib/plugin/caching_sha2_password.so: cannot open shared objectfile: No such file or directory