Mysql 8.0.x 多实例部署

结构如图所示

 

 1.同版本多实例 :

3306节点部署请参考mysql 8,0安装部署

#1.创建相关目录
mkdir -p /data/3307/data /data/3308/data
#2.授权
chown -R mysql.mysql /data/
#3.编写配置文档
cp /etc/my.cnf /etc/my3307.cnf
cp /etc/my.cnf /etc/my3308.cnf
3307配置档:
[root@db01 /data20:22:30]# cat /etc/my3307.cnf
[mysqld]
user=mysql
basedir=/usr/local/mysql
datadir=/data/3307/data
socket=/tmp/mysql3307.sock
server_id=52
port=3307
3308配置档:
[root@db01 /data20:23:16]# cat /etc/my3308.cnf
[mysqld]
user=mysql
basedir=/usr/local/mysql
datadir=/data/3308/data
socket=/tmp/mysql3308.sock
server_id=53
port=3308
#4.初始化
mysqld --defaults-file=/etc/my3307.cnf --initialize-insecure
mysqld --defaults-file=/etc/my3308.cnf --initialize-insecure
#5.启动mysql(因为是同版本,mysqld已经在3306启动,所以用mysqd_safe,可参考mysql的启动)
mysqld_safe --defaults-file=/etc/my3307.cnf &
mysqld_safe --defaults-file=/etc/my3308.cnf &
#6.登录测试
mysql -S /tmp/mysql3307.sock
mysql -S /tmp/mysql3308.sock

2.不同版本多实例:

 

 

#1.准备相关软件
上传软件版本/opt目录
mysql-5.6.50-linux-glibc2.12-x86_64.tar.gz
mysql-5.7.32-linux-glibc2.12-x86_64.tar.gz
#2.解压
tar xf mysql-5.6.50-linux-glibc2.12-x86_64.tar.gz
tar xf mysql-5.7.32-linux-glibc2.12-x86_64.tar.gz
#3.做软链接
[root@db01 /usr/local20:42:21]# ln -s /opt/mysql-5.7.32-linux-glibc2.12-x86_64 /usr/local/mysql57
[root@db01 /usr/local20:42:38]# ln -s /opt/mysql-5.6.50-linux-glibc2.12-x86_64 /usr/local/mysql56
#4.创建数据目录及授权
mkdir -p /data/{3356,3357}/data
chown -R mysql.mysql /data
#5.创建配置档
cat > /etc/my3356.cnf <<EOF
[mysqld]
user=mysql
basedir=/usr/local/mysql56
datadir=/data/3356/data
socket=/tmp/mysql3356.sock
server_id=56
port=3356
EOF
cat > /etc/my3357.cnf <<EOF
[mysqld]
user=mysql
basedir=/usr/local/mysql57
datadir=/data/3357/data
socket=/tmp/mysql3357.sock
server_id=57
port=3357
EOF
#6.初始化
5.6版本:
/usr/local/mysql56/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql56 --datadir=/data/3356/data

5.7版本:
/usr/local/mysql57/bin/mysqld --defaults-file=/etc/my3357.cnf --initialize-insecure

#7.启动mysql
/usr/local/mysql57/bin/mysqld_safe --defaults-file=/etc/my3357.cnf &
/usr/local/mysql56/bin/mysqld_safe --defaults-file=/etc/my3356.cnf &
#8.登录测试Mysql
mysql -S /tmp/mysql3356.sock
mysql -S /tmp/mysql3357.sock

3.遇到报错处理:

 

#mysql 5.7.32版本:
[ERROR] Can't start server : Bind on unix socket: Address already in use
[ERROR] Do you already have another mysqld server running on socket: /tmp/mysql3357.sock ?
[ERROR] Aborting

 

[root@db01 /tmp23:05:25]# ll
-rw-r--r-- 1 root root 0 Nov 20 21:58 mysql3356.sock
-rw------- 1 mysql mysql 5 Nov 20 22:02 mysql3356.sock.lock
-rw-r--r-- 1 root root 0 Nov 20 21:58 mysql3357.sock
-rw------- 1 mysql mysql 5 Nov 20 22:15 mysql3357.sock.lock

 

处理方法:
将占用sock文件删掉,重启
/usr/local/mysql57/bin/mysqld_safe --defaults-file=/etc/my3357.cnf &

 

#mysql 5.6.50版本:
2021-11-20 23:08:02 8811 [ERROR] Fatal error: Can't open and lock privilege tables: Table 'mysql.user' doesn't exist

 

先将data目录下的数据全部删掉,重新初始化和启动后测试OK

 

posted @   Linux运维-Friend  阅读(415)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示