Mysql主从同步搭建
mysql主从同步利用binlog日志中记录的sql语句实现数据同步,进而实现自动备份数据的目的。
在搭建mysql主从同步时,要求一台服务器做master即主服务器,一台服务器做slave即从服务器,slave服务器从master服务器上同步binlog日志中记录的sql语句,在本地数据库中执行这些语句来实现数据库同步的目的。
注意,在搭建mysql主从同步服务时,slave上的数据库必须与master服务器上的数据库中的库和表完全相同,即有同样的库,表且表结构完全相同。
本文使用两台RHEL5.9操作系统的虚拟机来完成实验,其中,master服务器IP地址为192.168.1.253,slave服务器的IP地址为192.168.1.252
实验步骤:
1、在两台服务器上配置静态IP地址并确保物理网络连接正常
2、配置master服务器
(1)yum方式安装mysql、mysql-server软件包
(2)修改mysql服务的配置文件
[root@localhost ~]# vim /etc/my.cnf//mysql服务配置文件
(3)启动mysqld服务并设置开机自启动
(4)本地登录mysql数据库,向slave授权并查看当前使用的binlog日志与偏移量
[root@localhost ~]# mysql -uroot//使用root用户名本地登录数据库
授权:
查看master状态:
3、配置slave服务器
(1)yum方式安装mysql、mysql-server软件包
(2)修改mysql服务的配置文件、启动mysqld服务并设置开机自启
[root@slave ~]# vim /etc/my.cnf
(3)本地登录mysql数据库,指定从服务器的主服务器并开启slave功能
change master to
-> master_host=‘192.168.1.253’,//指定主服务器地址
-> master_user=‘slaveuser’,//指定同步时使用的用户名
-> master_password=‘123’,//指定同步时使用的密码
-> master_log_file=‘mysqld-bin.00000.1’,//指定当前的主服务器使用的binlog日志
-> master_log_pos=98;//指定当前主服务器上的位偏移量
(4)查看slave功能是否正常工作
4、测试
master服务器上新建一个库zhy
slave服务器上查看数据库,同样出现zhy数据库:
至此,Mysql主从同步搭建完成且可以正常工作,但其中有几点需要注意:
1、设置slave服务器时在指定其主服务器时要在每个项目后面加逗号分隔
2、如需更改slave服务器的主服务器的设置需要先停止slave服务,然后再更改,使用命令stop slave可以停止slave服务
3、只有Slave_IO_Running与Slave_SQL_Running两个进程的状态全为Yse时才表明slave服务正常工作,否则都表示其工作异常。
4、Slave_IO_Running进程状态为NO的原因:
(1)连接不上主数据库服务器(物理线路,安全设置问题,授权问题)
(2)当前binlog日志名和pos点和主服务器的不一致
5、Slave_SQL_Running进程状态为NO的原因:从服务器本机没有主数据库上的库和表或者表结构不一致。