0. 从库mysql配置
#mysql 主从id
server-id = 10004
#中继日志文件的名称,用于从主服务器接收二进制日志事件。
relay-log = mysql-relay-bin
#从服务器的二进制日志文件的名称。
log_bin = mysql-bin
#主从复制遇到错误跳过
slave-skip-errors = all
#主从跳过的库
#replicate-ignore-db = xxx
#replicate-ignore-table = xxx.xxx
主库配置
server-id = 1
#二进制文件存放路径
log-bin = mysql-bin
#参数用于排除自带的数据库。
binlog-ignore-db = mysql
binlog-ignore-db = information_schema
binlog-ignore-db = performance_schema
binlog-ignore-db = sys
#二进制日志格式,建议使用ROW格式以获得更好的兼容性和可靠性。
binlog-format = ROW
主库添加用户
// 创建用户 db_sync未用户名可以修改 BY后面为密码,输入想要用来连接的密码,可以不是root用户的密码
CREATE USER 'db_sync'@'%' IDENTIFIED BY 'Csdn@123';
// 修改用户权限
GRANT REPLICATION SLAVE ON *.* TO 'db_sync'@'%';
1. 使用mysql指令导出数据
// 需要首先进入一个用于导出文件的文件夹
// window 可以在桌面建立一个文件夹mysqlData,然后使用cmd进入这个文件夹
// linux 可以创建文件夹然后进入,也可以直接使用文件路径
// 每个数据库导出一次 记住这个结尾千万不能带分号
mysqldump -uroot -p --databases db1 db2 > /usr/mysqlData/bak_mysql.sql
// 示例 windows
mysqldump -uroot -p --databases db1 db2> bak_mysql.sql
// 示例 linux
mysqldump -uroot -p --databases db1 db2> /usr/mysqlData/bak_mysql.sql
2. 然后将这个文件上传到服务器
3. 然后使用这个sql文件
// 进入mysql
mysql -uroot -p
// 使用这个sql文件
source filepath
// windows示例
source C:\Users\systemUser\Desktop\project\mysqlData\bak_mysql.sql
// linux示例 之前是保存在这里的
source /usr/mysqlData\bak_mysql.sql
4. 然后配置主从复制,并且需要在mysql配置里面开启错误跳过,重启mysql,并开启主从复制START SLAVE;
#mysql 主从id
server-id = 100003
#中继日志文件的名称,用于从主服务器接收二进制日志事件。
relay-log = mysql-relay-bin
#从服务器的二进制日志文件的名称。
log_bin = mysql-bin
#主从复制遇到错误跳过 这个在判断主从同步完成之后注释掉然后再重新启动一次mysql!
slave-skip-errors = all
// 关闭slave
stop slave;
// 配置主从的属性
CHANGE MASTER TO MASTER_HOST = 'xxx.xxx.xxx.xxx', MASTER_USER = '前面主库创建用户名字', MASTER_PASSWORD = '主库创建的用户密码', MASTER_LOG_FILE = '主库当前的日志文件名', MASTER_LOG_POS = 主库当前的偏移位置;
// 示例
CHANGE MASTER TO MASTER_HOST = 'xxx.xxx.xxx.xxx', MASTER_USER = 'db_sync', MASTER_PASSWORD = 'Csdn@123', MASTER_LOG_FILE = '10_0_16_17-bin.000009', MASTER_LOG_POS = 668;
// 开启主从slave
start slave;
5. 等待主从复制完成。这个就使用mysql的命令查看主从数据是否变化就好了
// 进入mysql
// 查看slave状态
SHOW SLAVE STATUS;
// 判断主从复制是否开启成功的方法
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
// 这两个都为yes为成功
// 个人查看是否还有未同步的数据笨方法
Relay_Log_File: mysql-relay-bin.000014
Relay_Log_Pos: 866
Exec_Master_Log_Pos: 2854
// 看这三个数据是否再变化,在的话就说明还有未同步的数据
// 开启主从复制
start slave;
// 停止主从复制
stop slave;
6. 注释掉主从复制错误配置,重启mysql