前言
本文主要介绍如何配置mysql数据库主从配置,使用了虚拟机上的服务器两台来配置一主一从,如果需要配置一主多从,配置方法是一样的.
环境
Centos7 服务器两台
- 192,168.56.80
- 192.168.56.85
配置主数据库
使用命令配置 vi /etc/my.cnf
在[mysqld]下面加
log-bin=mysql-bin
server-id=1
在mysql命令行执行
CREATE USER 'repl'@'192.168.56.%' IDENTIFIED BY '123456';
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'192.168.56.%';
FLUSH PRIVILEGES;
使用show master status
查看两个参数,这里先注意一下
配置从数据库
第1步:编辑/etc/my.cnf文件,设置server-id
[mysqld]
server-id=2
这里一定要确定主从数据库的server-id 不同
第2步:在mysql终端设置如下
change master to master_host='192.168.56.80', master_user='repl', master_password='123456', master_log_file='mysql-bin.000002', master_log_pos=877;
第3步:查看从数据库状态
使用 show slave master命令查看
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.56.80
Master_User: repl
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: binlog.000004
Read_Master_Log_Pos: 340
Relay_Log_File: 3e0b89196ec5-relay-bin.000007
Relay_Log_Pos: 548
Relay_Master_Log_File: binlog.000004
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
...................
.................
如果 Slave_IO_Running: Yes 和 Slave_SQL_Running: Yes都是yes的话,就说明没问题。
在主数据库中,进行修改
查看从数据库
可以看到,从数据库也同时进行了更新.
可能出现的错误
如果有不是yes的,请检查后面的字段,看看是否有error信息,我遇到了如下两个:
Got fatal error 1236 from master when reading data from binary log: 'Could not find first log file
Fatal error: The slave I/O thread stops because master and slave have equal MySQL server ids; these
参考资料
https://www.cnblogs.com/cjsblog/archive/2018/09/26/9706370.html