时间:2021-07-01 10:21:17 帮助过:19人阅读
[root@learn01 mysql]# /usr/local/mysql/bin/mysqldump -h192.168.4.9 -uroot -p123456 --quick --routines --master-data=2 --single-transaction --all-databases > data.sql
2、检查server_id
[root@learn01 mysql]# cat /data/mysql/my.cnf |grep server-id
server-id = 1
3、检查binlog是否开启
[root@learn01 mysql]# cat my.cnf |grep "log-bin"
log-bin=/data/mysql/mysql-bin
4、将备份传输给Slave
这里使用scp,大数据量,应该采取其他方式
[root@learn01 ~]# scp /data/mysql/data.sql root@192.168.4.10:/data/
5、创建并授权主从用户
grant replication slave on *.* to repl@‘%‘ identified by ‘123456‘;
flush privileges;
Slave配置
1、查看server-id是否唯一
[root@learn01 ~]# cat /data/mysql/my.cnf |grep server-id
server-id = 2
2、备份还原
[root@learn01 ~]# /usr/local/mysql/bin/mysql -uroot -h192.168.4.10 -p </data/data.sql
登入数据库确认是否数据恢复完整
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| test |
| wordpress_01 |
+--------------------+
5 rows in set (0.00 sec)
检查数据完整性,可以简单的抽查一些表的数据是否完整,我是看的行数
mysql> select count(*) from wp_usermeta;
+----------+
| count(*) |
+----------+
| 16 |
+----------+
3、建立主从关系
首先查看一下pos号和binlog位置
[root@learn01 ~]# cat /data/data.sql |head -26
CHANGE MASTER TO MASTER_LOG_FILE=‘mysql-bin.000016‘, MASTER_LOG_POS=617; #主要是看这一行
登入数据库建立主从
CHANGE MASTER TO MASTER_LOG_FILE=‘mysql-bin.000002‘, MASTER_LOG_POS=107, MASTER_HOST=‘192.168.4.9‘,MASTER_PORT=3306,MASTER_USER=‘repl‘,MASTER_PASSWORD=‘123456‘;
slave start; #启动从库
show slave status \G;查看主从状态
mysql> show slave status \G;
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.4.9 #Master 服务器IP
Master_User: repl #Master 创建的主从同步用户
Master_Port: 3306 #Master 服务器端口
Connect_Retry: 60
Master_Log_File: mysql-bin.000002 #Master binlog
Read_Master_Log_Pos: 107 #Master 日志 pos号
Relay_Log_File: relaylog.000002 #中继日志
Relay_Log_Pos: 253 #中继日志pos号
Relay_Master_Log_File: mysql-bin.000002 #中继日志文件
Slave_IO_Running: Yes #Slave IO 状态
Slave_SQL_Running: Yes #Slave SQL 状态
Replicate_Do_DB:
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 0
Last_Error:
Skip_Counter: 0
Exec_Master_Log_Pos: 107 #执行主日志pos号
Relay_Log_Space: 402
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
Master_SSL_Allowed: No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master: 0 #同步延时
Master_SSL_Verify_Server_Cert: No
Last_IO_Errno: 0
Last_IO_Error:
Last_SQL_Errno: 0
Last_SQL_Error:
Replicate_Ignore_Server_Ids:
Master_Server_Id: 1
1 row in set (0.00 sec)
Read_Master_Log_Pos和Exec_Master_Log_Pos 值一致时可以认定为主从同步成功
Seconds_Behind_Master 主从是否在同步,是否有延迟
Master_Log_File: mysql-bin.000002 Master binlog是否正确
三项都没有问题,可以认证为主从同步成功
五、主从搭建过程中的问题
案例
1、在主从建立时很容易产生 1062和1032,这样的报错,但是并不影响数据的完整性
解决方式:slave-skip-errors = 1062,1032
2、在数据导入从库时,从库会不断的产生binlog,所以在导入数据之前,
可以暂时将从库的binlog关闭,解决数据量的增长,或者等同步完成时,进行
对binlog数据的清理。
binlog 清理方式:
purge master logs to ‘mysql-bin.000022‘; #删除mysql-bin.000022这个之前的Log,根据实际情况判断删除
mysql主从搭建详细步骤
标签:系统版本 learn 日志文件 还原 搭建 cal 步骤 local rom