【Mysql主从配置方法---单主从】

Mysql主从

主服务器

  1. 创建用户
    create user “for_rep”@“从服务器IP地址” IDENTIFIED by “123456”

  2. 授权
    grant replication slave on . to “for_rep”@“从服务器IP地址” IDENTIFIED by “123456”

  3. 查看用户权限
    SHOW GRANTS FOR “for_rep”@“从服务器IP地址”;

  4. 修改Mysql配置

vim /etc/my.cnf

log-bin=mysql-bin
binlog_format=mixed
server-id=1

read-only=0
binlog-do-db=db
auto-increment-increment=2
auto-increment-offset=1

  1. 重启数据库

  2. 查看主服务器信息
    show master status\G

  3. 导出数据库SQL
    mysqldump --master-data -uroot -p gongzuotai > /root/db.sql

从服务器

  1. 在从服务器创建数据库,并导入SQL

  2. 打开从服务器B的中继日志relay_log
    vim /etc/my.cnf

log-bin=mysql-bin
binlog_format=mixed
server-id=2

replicate-do-db=db
relay_log=mysqld-relay-bin
log-slave-updates=ON

  1. 配置从服务器

CHANGE MASTER TO master_host=‘主服务器IP地址’, master_user=‘for_rep’, master_password=‘123456’, master_log_file=‘mysql-bin.000001’, master_log_pos=154;

  1. 查看从服务器信息
    show slave status\G

  2. 重启数据库


重启后发现第10步骤提示mysql Slave_IO_Running:NO

问题解决

  1. 查看从数据库的日志

  2. tail /var/log/mysqld.log

  3. 发现如下报错:
    The slave I/O thread stops because master and slave have equal MySQL server UUIDs; these UUIDs must be different for replication to work.

  4. 找到对应的 uuid 发现该文件为/var/lib/mysql/auto.cnf

  5. vim /var/lib/mysql/auto.cnf

  6. 将里面uuid的值随便改一个即可

  7. [auto]
    server-uuid=ba32605a-fcf9-11ec-a2a5-000c2935b536

重启从数据库服务:

完事

你可能感兴趣的:(mysql,数据库)