首页 > 技术文章 > MySQL 同版本多实例安装

nanblog 2022-02-11 23:08 原文

# 之前安装过单机版本的MySQL,安装单机版本前已将MySQL相关目录创建好,以上步骤省略,具体参考以下链接:

https://www.cnblogs.com/nanblog/p/15884979.html

1.编辑好配置文件

cat > /data/conf/3307/my.cnf <<EOF
[mysqld]
user=mysql
basedir=/soft/mysql
datadir=/data/3307/data
log_error=/log/3307/error.log
log_bin=/log/3307/mysql-bin
server_id=7
port=3307
socket=/tmp/mysql3307.sock
[mysql]
socket=/tmp/mysql3307.sock
prompt=3307
EOF

cat > /data/conf/3308/my.cnf <<EOF
[mysqld]
user=mysql
basedir=/soft/mysql
datadir=/data/3308/data
log_error=/log/3308/error.log
log_bin=/log/3308/mysql-bin
server_id=8
port=3308
socket=/tmp/mysql3308.sock
[mysql]
socket=/tmp/mysql3308.sock
prompt=3308
EOF

cat > /data/conf/3309/my.cnf <<EOF
[mysqld]
user=mysql
basedir=/soft/mysql
datadir=/data/3309/data
log_error=/log/3309/error.log
log_bin=/log/3309/mysql-bin
server_id=9
port=3309
socket=/tmp/mysql3309.sock
[mysql]
socket=/tmp/mysql3309.sock
prompt=3309
EOF

2.准备启动脚本

主要修改的就是ExecStart=/soft/mysql/bin/mysqld --defaults-file=/data/conf/3300.cnf

切换到/etc/systemd/system下

cp mysqld.service mysqld3307.service
cp mysqld.service mysqld3308.service
cp mysqld.service mysqld3309.service

vim mysqld3307.service
ExecStart=/app/mysql/bin/mysqld --defaults-file=/data/3307/my.cnf
vim mysqld3308.service
ExecStart=/app/mysql/bin/mysqld --defaults-file=/data/3308/my.cnf
vim mysqld3309.service
ExecStart=/app/mysql/bin/mysqld --defaults-file=/data/3309/my.cnf

[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/mysql/bin/mysqld --defaults-file=/etc/my.cnf
LimitNOFILE = 5000

切换到/etc/systemd/system下
cat > mysqld3307.service <<EOF
[Unit]
Description=MySQL Server
Documentation=man:mysqld(7)
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=/soft/mysql/bin/mysqld --defaults-file=/data/conf/3307/my.cnf
LimitNOFILE = 500
EOF

cat > mysqld3308.service <<EOF
[Unit]
Description=MySQL Server
Documentation=man:mysqld(7)
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=/soft/mysql/bin/mysqld --defaults-file=/data/conf/3308/my.cnf
LimitNOFILE = 500
EOF

cat > mysqld3309.service <<EOF
[Unit]
Description=MySQL Server
Documentation=man:mysqld(7)
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=/soft/mysql/bin/mysqld --defaults-file=/data/conf/3309/my.cnf
LimitNOFILE = 500
EOF
3.初始化多实例
mysqld --initialize-insecure --user=mysql --basedir=/soft/mysql --datadir=/data/3307/data
mysqld --initialize-insecure --user=mysql --basedir=/soft/mysql --datadir=/data/3308/data
mysqld --initialize-insecure --user=mysql --basedir=/soft/mysql --datadir=/data/3309/data

4.启动多实例

`[root@localhost data]# systemctl start mysqld3307.service
Warning: mysqld3307.service changed on disk. Run 'systemctl daemon-reload' to reload units.
Job for mysqld3307.service failed because the control process exited with error code. See "systemctl status mysqld3307.service" and "journalctl -xe" for details.
[root@localhost data]#
[root@localhost data]#

报错后,将该服务reload

[root@localhost data]# systemctl daemon-reload
[root@localhost data]#
[root@localhost data]# systemctl start mysqld3307.service`

启动实例还是报错:报错截图如下:

image

怀疑是之前启动的mysql影响,将my.cnf文件移走,停止原来的mysql进程,然后启动3307,启动成功

[root@localhost system]# service mysqld stop
Shutting down MySQL.. SUCCESS!
[root@localhost system]# mv /etc/my.cnf /etc/my.cnf.bak
[root@localhost system]# systemctl start mysqld3307

启动3308时又报错socket文件冲突,查看文件得知,之前配置的文件全部为socket=/tmp/mysql.sock

将每个实例的修改后为

socket=/tmp/mysql3307.sock
socket=/tmp/mysql3308.sock
socket=/tmp/mysql3309.sock

修改后启动成功

多实例安装参考文档

https://dev.mysql.com/doc/mysql-secure-deployment-guide/5.7/en/secure-deployment-post-install.html
image

推荐阅读