数据库主从同步配置

1、架构规划

两台主机进行配置,一个放主数据库,另一个放置从数据库
192.168.209.129 master
192.168.209.130 slave

2、修改两个主机的数据库配置,使用的相同的命令

命令: vi /etc/my.cnf

master主机

binlog:主要作用是用于数据库的主从复制及数据的增量恢复-----配置形式log-bin-mysql

【mysqld】在这个名称下,进行配置
server-id=1 log-bin=mysql-bin log-slave-updates slave-skip-errors=all

slave主机

【mysqld】在这个名称下,进行配置
server-id=2 log-bin=mysql-bin log-slave-updates slave-skip-errors=all

示例

3、重启数据库服务

systemctl restart mysqld

4、查看servier_id是否配置生效

  该命令是在数据库中执行,必须进入数据库mysql -uroot -proot

SHOW VARIABLES like 'server_id'; 

 5、登录master节点执行如下命令

  这个存在的主数据库的主机上,进行查看

show master status;

6、登录从节点

  从节点具有slave主机上,输入以下命令,找到主节点

change master to 
master_host='192.168.209.129',
master_user='root',
master_password='root',
master_log_file='mysql-bin.000002',
master_log_pos=155;

7、开启从节点

start slave;   开启 
stop slave;    关闭

8、查看节点开启状态

show slave statusG; 
************************** 

1. row ***************************
Slave_IO_State: Waiting for master to send event Master_Host: 10.15.0.9
Master_User: root
Master_Port: 3306 Connect_Retry: 60
Master_Log_File: mysql-bin.000001
Read_Master_Log_Pos: 120
Relay_Log_File: mysqld-relay-bin.000002
Relay_Log_Pos: 283
Relay_Master_Log_File: mysql-bin.000001
Slave_IO_Running: Yes
Slave_SQL_Running: Yes

如果输出IO和sql运行都没错,表示配置成功。错一个都表示失败。
查看日志调整错误
 cat /var/log/mysqld.log 

 错误秘籍

1、MySQL主从复制,启动slave时报错Slave failed to initialize relay log info structure from the repository

  slave reset执行候做了这样几件事: 
  a、删除slave_master_info ,slave_relay_log_info两个表中数据; 
  b、删除所有relay log文件,并重新创建新的relay log文件; 
  c、不会改变gtid_executed 或者 gtid_purged的值

解决

mysql> reset slave; 
Query OK, 0 rows affected (0.12 sec)

mysql> start slave;
Query OK, 0 rows affected (0.11 sec)
2、克隆主机,将数据库的uuid也复制过来了
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.

解决

  a、查看数据目录生成的路径:datadir

  cat /etc/my.cnf

 

  b、编辑auto.cnf中内容:vi auto.cnf

  删除uuid 

 
原文地址:https://www.cnblogs.com/HelloM/p/14184049.html