使用systemd管理多实例

编辑配置文件 /etc/my.cnf 

[client]
port=3306
socket=/tmp/mysql.sock

[mysqld_multi]
log = /data/mysql/mysqld_multi.log

[mysqld]
user=mysql
basedir=/usr/local/mysql

[mysqld@3306]
datadir=/data/mysql/3306
port=3306
server_id=3306
mysqlx_port=33061
socket=/data/mysql/3306/mysql.sock
log-error = /data/mysql/3306/error.log

[mysqld@3307]
datadir=/data/mysql/3307
port=3307
server_id=3307
mysqlx_port=33062
socket=/data/mysql/3307/mysql.sock
log-error = /data/mysql/3307/error.log

注意:@ 后面是实例别名,不一定是端口号,也可以使用其他有意义的名字。

初始化3306数据库 

/usr/local/mysql/bin/mysqld  --defaults-file=/etc/my.cnf  --defaults-group-suffix=@3306  --initialize --user=mysql --initialize-insecure


初始化3307数据库 

/usr/local/mysql/bin/mysqld  --defaults-file=/etc/my.cnf  --defaults-group-suffix=@3307  --initialize --user=mysql --initialize-insecure

 

配置systemd

cat >/etc/systemd/system/mysqld@.service<<EOF 
[Unit]
Description=MySQL Server
After=network.target

[Install]
WantedBy=multi-user.target

[Service]
Type=forking
TimeoutSec=0
PermissionsStartOnly=true
ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf --defaults-group-suffix=@%I$MYSQLD_OPTS  --daemonize
LimitNOFILE = 65535
Restart=on-failure
RestartSec=10
RestartPreventExitStatus=1
PrivateTmp=false
EOF

 

添加可执行权限

chmod +x /etc/systemd/system/mysqld@.service

 

重载 systemctl units

systemctl daemon-reload

 

使用systemd管理服务,启动

systemctl start mysqld@3306
systemctl start mysqld@3307

 

关闭

systemctl stop mysqld@3306
systemctl stop mysqld@3307

 

posted @ 2023-03-11 23:30  屠魔的少年  阅读(5)  评论(0)    收藏  举报