一、MySQL一主一从
- 数据库服务器192.168.4.51配置为主数据库服务器
- 数据库服务器192.168.4.52配置为从数据库服务器
- 客户端192.168.4.50测试配置
其中192.168.4.51是主服务器,另一台192.168.4.52作为从服务器,通过调取主服务器上的binlog日志,在本地重做对应的库、表,实现与主服务器的数据同步。【获取资源】
主机51和主机52分别运行MySQL数据库服务,且管理员root用户可以本机登录;主机50作为客户机 只需有命令行连接命令mysql即可。【获取资源】
步骤一:配置主服务器192.168.4.51
1)启用binlog日志
1 ]# vim /etc/my.cnf
2 [mysqld]
3 server_id=51 //server_id
4 log-bin=master51 //日志名
5 :wq
6 ]# systemctl restart mysqld
2)用户授权
用户名自定义、客户端地址使用% 或 只指定 从服务器的地址 都可以、只给复制数据的权限即可。
1 ]# mysql -uroot -p密碼
2 mysql> grant replication slave on *.* to repluser@"%" identified by "123qqq...A";
3 mysql>quit;
3)查看binlog日志信息
查看日志文件名 和 偏移量位置。
mysql> show master status\G;
*************************** 1\. row ***************************
File: master51.000001 //日志名
Position: 441 //偏移量
Binlog_Do_DB:
Binlog_Ignore_DB:
Executed_Gtid_Set:
1 row in set (0.00 sec)
步骤二:配置从服务器192.168.4.52
1)指定server_id
Server_id值可以自定义,但不可以与主服务器相同。
1 ]# vim /etc/my.cnf
2 [mysqld]
3 server_id=52 //server_id值
4 :wq
5 ]# systemctl restart mysqld //重启服务
2)确保与主服务器数据一致(如果是使用2台新部署的数据库服务器配置主从同步,此操作可以忽略)
1 ]# mysqldump -uroot –p密码 --master-data 数据库名 > /allbak.sql //在主服务器上备份数据
2 ]# scp /allbak.sql root@192.168.4.52:/root/ //将备份文件拷贝给从服务器
3 mysql> create database 数据库名 ; //在从服务器上创建与主服务器同名的数据库
4 ]# mysql -uroot –p密码 数据库名 < /root/allbak.sql //从服务器使用备份文件恢复数据
5 ]# vim /root/allbak.sql //在从服务器查看备份文件中的binlog日志信息
6 ......
7 ......
8 CHANGE MASTER TO MASTER_LOG_FILE='master51.000001', MASTER_LOG_POS=441; //日志名与偏移量
3)指定主服务器信息【获取资源】
数据库管理员root本机登录,指定主服务器信息,其中日志文件名和偏移量 写allbak.sql文件记录的。
1 ]# mysql -uroot –p密码 //管理员root 本机登录
2 mysql> show slave status; //查看状态信息,还不是从服务器
3 Empty set (0.00 sec)
4 mysql> change master to //指定主服务器
5 -> master_host=“192.168.4.51”, //主服务器ip地址
6 -> master_user=“repluser”, //主服务器授权用户
7 -> master_password=“123qqq…A”, //主服务器授权用户密码
8 -> master_log_file=“master51-bin.000001”,//主服务器日志文件
9 -> master_log_pos=441; //主服务器日志偏移量
10 mysql> start slave;
11 mysql> show slave status\G; //查看状态信息
12 *************************** 1\. row ***************************
13 Slave_IO_State: Waiting for master to send event
14 Master_Host: 192.168.4.51 //主服务器ip地址
15 Master_User: repluser
16 Master_Port: 3306
17 Connect_Retry: 60
18 Master_Log_File: master51.000001
19 Read_Master_Log_Pos: 437
20 Relay_Log_File: host52relay-bin.000002
21 Relay_Log_Pos: 604
22 Relay_Master_Log_File: master51.000001
23 Slave_IO_Running: Yes //IO线程yes状态
24 Slave_SQL_Running: Yes //SQL线程yes状态
25 Replicate_Do_DB:
26 Replicate_Ignore_DB:
27 Replicate_Do_Table:
28 Replicate_Ignore_Table:
29 Replicate_Wild_Do_Table:
30 Replicate_Wild_Ignore_Table:
31 Last_Errno: 0
32 Last_Error:
33 Skip_Counter: 0
34 Exec_Master_Log_Pos: 437
35 Relay_Log_Space: 812
36 Until_Condition: None
37 Until_Log_File:
38 Until_Log_Pos: 0
39 Master_SSL_Allowed: No
40 Master_SSL_CA_File:
41 Master_SSL_CA_Path:
42 Master_SSL_Cert:
43 Master_SSL_Cipher:
44 Master_SSL_Key:
45 Seconds_Behind_Master: 0
46 Master_SSL_Verify_Server_Cert: No
47 Last_IO_Errno: 0
48 Last_IO_Error:
49 Last_SQL_Errno: 0
50 Last_SQL_Error:
51 Repli