Centos7.4搭建Mysql数据库主从同步、读写分离

环境需求,因为有一个博客的服务器是在香港那边的,最近在做微信小程序,把现在的这个博客和香港的那个博客整合在了一起。目前出现的问题就是,用作API接口的服务器是在国内的,而另外的那个服务器是在香港的,如果我的API服务器需要调用香港的那个服务器的数据的话,要进行跨区域远程调用数据,然后再返回,这样就很浪费请求时间。

因为不可描述的问题,也没有将那个博客解析到API的接口服务器,所以想到了mysql的主从复制,香港的作为主服务器,国内的服务器作为从服务器,那么香港的博客在后台添加文章什么的也不会影响到数据的请求速度,以下实操教程。

主mysql服务器地址:192.168.1.101 从mysql服务器地址:192.168.1.102

一、首先在主服务器配置好配置文件/etc/my.cnf

[mysqld]中加入

binlog-do-db=mysqla

重启主服务器的mysql服务

查看主服务器MySQL二进制文件名和位置

mysql> SHOW MASTER STATUS;

+------------------+----------+--------------+------------------+-------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000011 |     4186 | nobita       |                  |                   |
+------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)

记住Position的值,因为从服务器的mysql中需要填写对应的Position值

二、在从服务器配好配置文件/etc/my.cnf

[mysqld]中加入

server_id=2
#log_bin=mysql-bin
replicate_do_db=nobita
replicate_ignore_db=mysql #不备份mysql默认数据库
replicate_ignore_db=information_schema

然后重启从mysql服务

重启后进去mysql命令行执行告知二进制文件名和位置

CHANGE MASTER TO MASTER_HOST='192.168.1.101', MASTER_USER='nobita', MASTER_PASSWORD='nobita2018', MASTER_LOG_FILE='mysql-bin.000011', MASTER_LOG_POS=4186;

三、测试主从复制

mysql > START SLAVE;      #开启复制mysql
	  > SHOW SLAVE STATUS\G;  #查看主从复制是否成功

如果看到有 Yes 就是已经成功了

Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Comments: 11

「人生在世,留句话给我吧」

提交评论