上一篇 下一篇 分享链接 返回 返回顶部

vps服务器Mysql主从同步

发布人:欢子 发布时间:2026-01-21 09:44 阅读量:9
id="mysql主从同步">MySQL主从同步什么是MySQL主从同步实现不同MySQL服务器之间数据实时同步的解决方案MySQL主从同步原理

MySQL主从同步搭建

##将server51和server52搭建成MySQL主从结构

#分析:

server51(主服务器)

1)开启binlog日志

2)授权主从同步用户

3)备份已有数据

server52(从服务器)

1)设置serverid,可不开启binlog日志

2)还原数据(实现主从结构前保证服务器基础数据统一)

3)搭建主从关系

##server51操作

[root@server51~]#sed-rn'4,6p'/etc/my.cnf#确保启用binlog日志

[mysqld]

log_bin=/mylog/db1

server_id=51

[root@server51~]#ls/mylog/#查看binlog日志文件

[root@server51~]#mysql-hlocalhost-uroot-p'123qqq...A'#登录MySQL服务

mysql>GRANTREPLICATIONSLAVEON*.*TO

->repluser@'%'IDENTIFIEDBY'123qqq...A';#授权主从同步用户

mysql>SHOWGRANTSFORrepluser@'%';#确认用户权限

mysql>SHOWMASTERSTATUS;#查看活跃binlog日志信息

+------------+----------+--------------+------------------+-------------------+

|File|Position|Binlog_Do_DB|Binlog_Ignore_DB|Executed_Gtid_Set|

+------------+----------+--------------+------------------+-------------------+

|db1.000003|28900637||||

+------------+----------+--------------+------------------+-------------------+

1rowinset(0.01sec)

[root@server51~]#

[root@server51~]#mysqldump-hlocalhost-uroot-p'123qqq...A'-A>ab1.sql#备份已有数据

[root@server51~]#scpab1.sql192.168.88.52:/root#同步备份文件

##server52操作

[root@server52~]#vim/etc/my.cnf#修改MySQL主配置文件

[root@server52~]#sed-rn'4,5p'/etc/my.cnf

[mysqld]

server_id=52#设置serverid

[root@server52~]#systemctlrestartmysqld#重启服务使配置生效

[root@server52~]#lsab1.sql#确认主服务器备份数据同步成功

[root@server52~]#mysql-hlocalhost-uroot-p'123qqq...A'

[root@server52~]#mysql-hlocalhost-uroot-p'123qqq...A'#登录MySQL服务

mysql>CHANGEMASTERTO#修改主服务为

->MASTER_HOST="192.168.88.51",#主服务器地址

->MASTER_USER="repluser",#连接主服务器用户

->MASTER_PASSWORD="123qqq...A",#连接主服务器用户密码

->MASTER_LOG_FILE="db1.000003",#主服务器正在使用的binlog日志

->MASTER_LOG_POS=28900637;#从binlog日志什么位置开始同步

QueryOK,0rowsaffected,2warnings(0.00sec)

mysql>STARTSLAVE;#启动IO/SQL线程

QueryOK,0rowsaffected(0.00sec)

mysql>SHOWSLAVESTATUS\G#查看主从同步状态

***************************1.row***************************

Slave_IO_State:Waitingformastertosendevent

Master_Host:192.168.88.51

Master_User:repluser

Master_Port:3306

Connect_Retry:60

Master_Log_File:db1.000003

Read_Master_Log_Pos:28900637

Relay_Log_File:server52-relay-bin.000002

Relay_Log_Pos:314

Relay_Master_Log_File:db1.000003

Slave_IO_Running:Yes#IO线程正常工作

Slave_SQL_Running:Yes#SQL线程正常工作

...

Last_IO_Errno:0

Last_IO_Error:

Last_SQL_Errno:0

Last_SQL_Error:

mysql>exit

Bye

[root@server52~]#ls/var/lib/mysql/master.info

##测试主从同步

#server51执行写操作

[root@server51~]#mysql-hlocalhost-uroot-p'123qqq...A'-e"CREATEDATABASEmsdb";

[root@server51~]#mysql-hlocalhost-uroot-p'123qqq...A'-e"CREATEtablemsdb.user(nameCHAR(20));"

[root@server51~]#mysql-hlocalhost-uroot-p'123qqq...A'-e"INSERTINTOmsdb.userVALUES('zhangsan');"

[root@server51~]#mysql-hlocalhost-uroot-p'123qqq...A'-e"SELECT*FROMmsdb.user;"

+----------+

|name|

+----------+

|zhangsan|

+----------+

#server52自动同步

[root@server52~]#mysql-hlocalhost-uroot-p'123qqq...A'\

>-e"SELECT*FROMmsdb.user;"#操作server51的过程中server52自动同步server51的新增数据

+----------+

|name|

+----------+

|zhangsan|

目录结构
全文