数据库主从同步配置
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 status\G;
**************************
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