mysql主从同步实现
首先,mysql主从同步需要两个服务器,推荐使用虚拟机安装两个服务器。这里我用虚拟机安装了两个服务器。现在,我们开始配置。
首先配置主服务器
-
找到主服务器的配置文件my.ini 在配置文件中修改server_id,注意此id不与从服务器id相同即可。
-
然后开启二进制文件
log-bin=mysql-bin
,然后再设置一下需要进行同步的数据库,注意,如果不设置,则全数据库同步。binlog-do-db=mytest
, -
然后创建一个主服务器的数据库用户,此用户用来给从库连接主库使用。这里我创建的用户是mytest,密码是123456.然后对该用户进行授权,授权他是一个从库使用的用户。
-
此命令请使用root账号在主服务器上执行,其中%代表可以让任意一个从库ip用此账号进行连接。
grant replication slave on *.* to mytest@'%' identified by '123456';
最后我们调出主库日志.找到我们日志文件的名称和未知位置,记下,后面从库中会用到。
配置从库
- 配置文件
#要同步的数据库的名称 replicate-do-db=mytest
注意配置文件中的server_id不能与主库相同,如果配置了需要同步的数据库,那么在此处也需要配置同名的数据库。
开始配置从服务器的同步设置。
;
mysql> CHANGE MASTER TO
-> MASTER_HOST='这里是主服务器的ip',
-> MASTER_USER='主服务器上配置过的用户',
-> MASTER_PASSWORD='密码',
-> MASTER_LOG_FILE='上文中的调出的日志文件(mysql-bin.000005)',
-> MASTER_LOG_POS=上文中调出的日志文件位置(3182)
到此,重启一下两个mysql服务,就完成了!
最后
检查从服务器是否正常运行show slave status\G
,看显示出的列表中的
Slave_IO_Running: Yes Slave_SQL_Running: Yes
是否两个都是yes,如果不是,则是配置错误。