0
篇帖子
环境需求,因为有一个博客的服务器是在香港那边的,最近在做微信小程序,把现在的这个博客和香港的那个博客整合在了一起。目前出现的问题就是,用作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
本博客内所有原创和翻译的文章的版权归本人所有,允许第三方转载,但转载时请务必保留作者名,并注明出处链接,否则本人将保留追究其法律责任的权利。
「人生在世,留句话给我吧」