systemd管理mysql多实例_在ubuntu上安装systemd管理的MySQL8.0多实例

因为要做binlog replication相关的毕设,于是整了个虚拟机,里面装多个mysql实例进行主从同步。

最早的时候头铁直接百度照着做,结果没跑起来不说,本来的单个实例还出了些问题,干脆重装虚拟机,然后痛定思痛,还是抱官方爸爸的大腿:4.3.4 mysqld_multi - Manage Multiple MySQL Servers​dev.mysql.com

想要使用mysqld_multi进行多实例控制,但是文档里写:Note

For some Linux platforms, MySQL installation from RPM or Debian packages includes systemd support for managing MySQL server startup and shutdown. On these platforms, Section 2.5.9, “Managing MySQL Server with systemd”.

刚好虚拟机是ubuntu18.04,遂转systemd。

步骤

按照官方爸爸的文档,修改/etc/mysql/mysql.conf.d/mysqld.cnf,加入要加入的组

[mysqld@replica01]

datadir=/var/lib/mysql-replica01

socket=/var/lib/mysql-replica01/mysql.sock

port=3307

log-error=/var/log/mysqld-replica01.log

[mysqld@replica02]

datadir=/var/lib/mysql-replica02

socket=/var/lib/mysql-replica02/mysql.sock

port=3308

log-error=/var/log/mysqld-replica02.log

只不过我选择了不同的数据文件加名称和组名称。在这里mysqld后面的@是一个分隔符。

然后sudo mkdir /var/lib/mysql-replica01,之后chown -R mysql.mysql,万事俱备,systemctl start mysql@replica01——

并没有跑起来。

而且这沙雕报错啥都看不出。

但是危难之中想起了,mysql也是有log的呀!结果确实,mysql的log显示创建某文件失败。可是我chown了。一番百度之后,得知应该修改apparmor的内容,修改/etc/apparmor.d/usr.sbin.mysqld,把刚刚cnf里面写的datadir给上权限,记得reload和restart apparmor的service,再启动一次实例。

但是还是启动失败。

继续查看mysql的log,显示某表不存在。百度之,解决方案是将旧实例中的mysql库复制过去。但是我直接把新实例datadir下的内容删除,再接着重启数次,竟然就成功了...

至此,mysql@replica01已经成功跑起。

需要注意,新实例的初始密码是在旧实例的error-log里,而不是新实例,因为使用的是[mysqld]下面的配置。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值