怎么实现?
在 master 机器上,主从同步事件会被写到 binlog 文件中(类似 mysql-bin.,具体由 my.cnf 设定);
在 slave 机器上,slave 读取主从同步事件,并根据事件在 slave 上做相应更改。
环境
模式:1 主,1 从
主机
Debian Buster
Mysql 5.6
1.1.1.1
从机
Debian Buster
Mysql 5.6
2.2.2.2
查询
查看 Mysql 状态
ps -ef | grep mysql
查看 my.cnf 路径(/etc/my.cnf
)
mysql --help | grep 'Default options' -A 1
A 主机操作
登录数据库
mysql -uRoot -pPassWord
在 A 增加帐号 UserA,允许它登陆 B 操作
mysql> GRANT all privileges ON *.* TO UserA@'2.2.2.2' IDENTIFIED BY '密码';
锁定数据库(使其无法更改日志)
mysql> FLUSH TABLES WITH READ LOCK;
导出现有数据为 dbdump.sql,新建 SSH 窗口执行:
mysqldump -uRoot -pPassWord --all-databases --master-data > dbdump.sql
重置 MASTER 日志,创建 .000001 空日志
mysql> RESET MASTER;
记录当前日志 File 和 Position
mysql> SHOW MASTER STATUS;
解锁数据库
mysql> UNLOCK TABLES;
修改 A 主机 my.cnf
[mysqld]
bind-address = 0.0.0.0
server-id = 1
log_bin = mysql-bin
expire_logs_days = 7
# 需同步数据库
binlog-do-db = leeyr
# 需忽略数据库
binlog-ignore-db = mysql
# 从机启用日志功能
log-slave-updates = 1
重启 Mysql
service mysqld restart
把本地 dbdump.sql 上传到远程 B
scp -r -P 端口 dbdump.sql root@2.2.2.2:/root
B 从机的操作
登录数据库
mysql -uRoot -pPassWord
在 B 增加帐号 UserB,允许它登陆 A 操作
mysql> GRANT all privileges ON *.* TO UserB@'1.1.1.1' IDENTIFIED BY '密码';
修改 B 从机 my.cnf
[mysqld]
bind-address = 0.0.0.0
server-id = 2
log_bin = mysql-bin
expire_logs_days = 7
重启 Mysql
service mysqld restart
导入 dbdump.sql
mysql> SOURCE dbdump.sql
停止 slave
mysql> stop slave;
重置 slave
mysql> RESET SLAVE;
设置主从建立连接
mysql> change master to master_host='1.1.1.1', master_user='UserA', master_password='密码', master_log_file='mysql-bin.000001', master_log_pos=120;
# master_log_file,master_log_pos 在上面有获取到。
开始主从同步
mysql> start slave;
查看任务状态
show slave status\G
# 正常状态提示
Slave_IO_State: Waiting for master to send event
...
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
...
# 如果 \G 后面添加了 ; ,那么一定报错 ERROR: No query specified。
# 显示 Slave_IO_Running: Connecting 说明参数错误。
①请小心修改从机器的数据,或者不修改。
②资料 http://bbs.chinaunix.net/thread-2297959-1-1.html
③记得删除 dbdump.sql。
可能用到:
测试从 B 登陆 A
mysql -h1.1.1.1 -u用户 -p密码
检查端口
netstat -tln
my.cnf 详细介绍
https://blog.csdn.net/cbuy888/article/details/80527385
更新 2020-01-01