年后腾讯二面,第一个问MySQL主从结构,给我整不会了

本文详细介绍了MySQL的主从结构配置,包括一主一从、一主多从和主从从结构,以及如何配置半同步复制模式。通过具体的步骤指导,如启用binlog、配置server_id、用户授权等,帮助读者理解并实现数据库的数据同步。
摘要由CSDN通过智能技术生成

一、MySQL一主一从

  • 数据库服务器192.168.4.51配置为主数据库服务器
  • 数据库服务器192.168.4.52配置为从数据库服务器
  • 客户端192.168.4.50测试配置

其中192.168.4.51是主服务器,另一台192.168.4.52作为从服务器,通过调取主服务器上的binlog日志,在本地重做对应的库、表,实现与主服务器的数据同步。【获取资源】

image

主机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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值