重新安装MySQL并加入MGR集群

前言

所谓的MGR, 全称: MySQL Group Replication, 是一种MySQL的主从架构。
因为之前的MySQL已经没有办法恢复起来, 实在没办法, 采取的方法是完全删除, 并重新安装、加入MGR

首先完整删除之前的MySQL

然后安装完整版的MySQL

参考文章Ubuntu 16.04安装MySQL官方最新“非阉割”版

注意: 如果安装的不是完整版的, 在最后安装MGR插件就会遇到绕不过去的坑。

主要步骤:

  1. 到 MySQL官方的 Download MySQL APT Repository 页面下载
    mysql-apt-config_*_all.deb

  2. 运行命令:

  • 运行deb包: sudo dpkg -i mysql-apt-config*

    注意: 在这一步, 最好安装跟原来MySQL 一致的版本。 默认是8.0, 可以在弹出的对话框之中选择5.7

  • 更新 sudo apt-get update

  • APT安装MySQL

    sudo apt-get install mysql-server mysql-client

修改配置文件 – 数据目录

主要参考文章: DigitalOcean: How To Move a MySQL Data Directory to a New Location on Ubuntu 16.04

MySQL的数据目录默认位置: /var/lib/mysql/

注意: 在这里步骤还是比较麻烦的, 一不小心, 启动的时候就会报错:

Job for mysql.service failed because the control process
exited with error code. See “systemctl status mysql.service”
and “journalctl -xe” for details.

步骤:

1. 暂停MySQL 并将原来的数据目录复制到新的目录之中

运行命令:

2. 配置文件修改数据目录

注意: 这个时候还不能启动

3. 修改AppArmor

我也是第一次知道还有AppArmor这个东西存在

4. 创建空间文件, 绕过启动检查

MySQL有一个启动检查脚本

解决方案: 创建空文件夹即可:

最终: 启动MySQL

修改配置文件 – 加入MGR的配置

参考网址: https://blog.skyaid-service.org/2017/10/29/mgr_haproxy/

配置文件还是上面提到的 :/etc/mysql/mysql.conf.d/mysqld.cnf

带解说版本:

实际配置的版本

上面的配置完成之后, 就可以重启MySQL了

其他操作

1. 创建MGR用户

执行下面的脚本即可:

2. 安装MGR插件

加入集群

注意:

如果是集群刚开始启动, 需要执行的命令如下:

但是现在是加入原来有的集群, 所以只能执行下面这个命令:

补救: 如果不小心也把上面3个命令都执行了一次, 补救措施:

此时如果再来看集群的状态, 可以看到, 已经处于Recovering的状态了

至此, 全流程完成


本文站在了前人的肩膀之上, 所参考的文章都已经列出出处。

各位转载的也请注明本博客的地址: https://www.flyml.net

点赞

发表评论

电子邮件地址不会被公开。 必填项已用*标注