美文网首页
Mariadb配置主从复制遇到的坑

Mariadb配置主从复制遇到的坑

作者: TerryLaravel | 来源:发表于2019-03-12 20:44 被阅读0次

    准备工作:

    主数据库所在服务器IP:172.16.41.1

    从数据库所在服务器IP:172.16.41.2

    mariadb的配置文件的位置:/etc/my.conf

    一、主数据库配置:

    找到[mysqld] 标签,在下面配置:

    server-id=1  #这是数据库服务器id主从数据库不能重复,在所有mysql数据库中唯一

    log-bin=xxxxx  #二进制文件保存的位置,网上很多人说不配置就默认与datadir相同,实测不能缺省

    创建用户:

     CREATE USER 'terry'@'172.16.41.2' IDENTIFIED BY '123456';

    授权:

    grant file,select,replication slave on *.* to terry@172.16.41.2 identified by '123456';

    (此处有坑) grant replication .....只给replication是不正确的写法,一定要写全file,select,replication

    二、从数据库配置

    server-id = 2

    #log-bin = /mydata/mysql-bin   //注释不会影响从库,打开也可以

    relay-log = /mydata/relaylogs/relay-bin  //这项设置是必须的

    然后依次执行:

    stop slave;

    CHANGE MASTER TO MASTER_HOST='172.16.41.1', MASTER_USER='terry', MASTER_PASSWORD='123456', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=328;

    start salve;

    然后通过下面的  show slave status\G; 查看是否成功。

    参考: https://blog.51cto.com/aimax/2123440

    https://www.cnblogs.com/hanson1/articles/7101456.html

    坑:

    1. 报错:

    Failed to open the relay log './mariadb-relay-bin.000001' (relay_log_pos 4)

    190311 23:21:37 [ERROR] Could not find target log during relay log initialization

    分析应该是由于mysql-relay-bin.index中仍然保存着旧relay日志文件的路径,而这些路径下又找不到合适的文件,因此报错。

    对于这类问题解决起来是比较简单的,重置slave的参照即可,执行命令如下:

    mysql> reset slave;

    相关文章

      网友评论

          本文标题:Mariadb配置主从复制遇到的坑

          本文链接:https://www.haomeiwen.com/subject/aqtvpqtx.html