Linux下mysql主从复制配置(CentOS7)

主从复制需要注意:

1、数据库版本必须一致

2、数据库名称必须一致   例如db888

3、配置主数据库开启二进制日志

4、主数据库、从数据库必须具有一个唯一的server-id

配置主从数据库复制:

一:操作主库

1、修改主库的配置文件

    vi /etc/my.cnf    

  找到[mysqld] ,在下面新增

    binlog-do-db=db888                      //多个库同步用逗号隔开
    binlog-ignore-db=mysql
    log-bin=mysql-bin                          //启用二进制日志
    server-id=94                                  //服务器唯一ID,一般取IP最后一段

2、重启mysql服务

    systemctl restart mysqld

3、登录主服务器 mysql

     mysql -uroot -p123

4、创建从服务器获取日志文件的账号

    grant replication slave on *.* to 'backup'@'%' identified by '123456';

    刷新权限

    flush privileges;

5、查看主服务器状态

    show master status;

  注意:File 、   Position 很重要,记录下来,稍后配置从库的时候要用到

二:操作从库

 1、修改从库的配置

    vi /etc/my.cnf

   [mysqld] 后面增加
    server-id=95                          //服务器唯一ID,一般取IP最后一段

2、重启mysql服务器

    systemctl restart mysqld

3、登录从库 mysql

    mysql -uroot -p123

4、配置从数据库挂载主库

    mysql> change master to
    -> master_host='10.10.13.94',
    -> master_port=3306,
    -> master_user='backup',
    -> master_password='123456',
    -> master_log_file='mysql-bin.000001',     //主服务器最后记录下来的File 日志文件名称       
    -> master_log_pos=583;                           //主服务器最后记录下来的Position 进程号

5、启动从库

    start slave;

6、查看主从复制状态

    show slave status \G;

 

如果看到 Slave_IO_Running: Yes
               Slave_SQL_Running: Yes

说明配置成功,操作数据库即可。

 

注:

错误处理

    如果出现此错误:

    Fatal error: The slave I/O thread stops because master and slave have equal MySQL server UUIDs; these UUIDs must be        different for replication to work.

    因为是mysql是克隆的系统所以mysql的uuid是一样的,所以需要修改。

解决方法:

    删除/var/lib/mysql/auto.cnf文件,重新启动服务

 

你可能感兴趣的:(Linux)