主库备份数据
查看主库当前binlog文件和位置
此步骤省略:调整至第二步(使用–master-data=2参数将日志位置写入导出文件开头部分)mysql -uroot -p show master status;
- 备份数据库
mysqldump -uroot -p dbname > mydatabase.sql
#文件可指定位置#
mysqldump -uroot -p dbname > D:/bak/mydatabase.sql
mysqldump --skip-lock-tables --single-transaction --flush-logs --hex-blob --master-data=2 -uyourusername -pyourpassword --databases yourdatabase -e --max_allowed_packet=67108864 --net_buffer_length=16384 --ignore-table=notneedtable >D:/bak/filename.sql
-
将备份文件复制到从服务器
-
导入数据
mysql -uroot -p
mysql> source /tmp/mydatabase.sql
- 查看第二步备份的文件头部存储的信息
使用more命令(文件太大了)打开第二步备份的文件头部
查看主服务器日志文件名与pos值
more +20 mydatabase.sql
例:图中所示
日志文件名
WIN-H7TETN00JMA-bin.000445
pos位置
155
- 设置从库的同步配置
change master to master_host = '172.16.19.159', master_user = 'salve', master_port=3306, master_password='111111', master_log_file = '第5步中获取的file', master_log_pos=第5步中获取的position;
- 启动同步
mysql -uroot -p
mysql> start slave;
mysql> show slave status\G
以下几个位置检查同步状态与错误信息,若为以下内容,则配置成功
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Slave_SQL_Running_State: Replica has read all relay log; waiting for more updates
问题排查
- 检查主从服务器配置文件my.cnf配置文件是否配置正确(主服务器是否开启日志,主从服务器ServerId是否冲突 等等 相关资料非常多)
- 同步使用的账户是否授权
- 检查从服务器环境配置,可根据Slave_SQL_Running_State显示的错误信息,进行针对性排查修复
相关内容
创建主从同步专用账号
--为从库服务器 设置用户名和密码 账号为 slave 密码为 slave123
CREATE USER 'slave'@'%' IDENTIFIED WITH sha256_password BY 'slave123'
-- '出于安全性考虑,最好限制此账号登录Ip'
CREATE USER 'slave'@'172.16.19.159' IDENTIFIED WITH sha256_password BY 'slave123'
--设置权限
grant replication slave, replication client on *.* to 'slave'@'%';
--权限生效
flush privileges;
关闭selinux
1、临时关闭(重启机器后失效):
[root@cccc-218-62 ~]# setenforce
2、永久关闭(需要重启机器):
sed -i s#SELINUX=enforcing#SELINUX=disabled# /etc/selinux/config