当前位置:Gxlcms > 数据库问题 > mysql主从复制

mysql主从复制

时间:2021-07-01 10:21:17 帮助过:68人阅读

https://www.cnblogs.com/rwxwsblog/p/4542417.html

http://www.cnblogs.com/gl-developer/p/6170423.html

Mysql主从复制的实现原理图大致如下(来源网络):

技术分享图片

实现MySQL主从复制需要进行的配置:

  • 主服务器:
    • 开启二进制日志
    • 配置唯一的server-id
    • 获得master二进制日志文件名及位置
    • 创建一个用于slave和master通信的用户账号
  • 从服务器:
    • 配置唯一的server-id
    • 使用master分配的用户账号读取master二进制日志
    • 启用slave服务

主数据库:182.92.172.80 /linux

从数据库:123.57.44.85 /linux

一、主库修改

找到主数据库的配置文件my.cnf(或者my.ini),我的在/etc/mysql/my.cnf,在[mysqld]部分插入如下两行:

[mysqld]
log-bin=mysql-bin #开启二进制日志
server-id=1 #设置server-id
# 不同步哪些数据库  
binlog-ignore-db = mysql  
binlog-ignore-db = test  
  
# 只同步哪些数据库,除此之外,其他不同步  
binlog-do-db = game 

重启mysql,创建用于同步的用户和密码

mysql> CREATE USER ‘insure‘@‘123.57.44.85‘ IDENTIFIED BY ‘slavepass‘;#创建用户
mysql> GRANT REPLICATION SLAVE ON *.* TO ‘repl‘@‘123.57.44.85‘;#分配权限
mysql>flush privileges;   #刷新权限

查看master状态

mysql > SHOW MASTER STATUS;
+------------------+----------+--------------+------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000003 | 73       | test         | manual,mysql     |
+------------------+----------+--------------+------------------+

二、修改从库

修改my.cnf配置文件  cd /etc/my.cnf

[mysqld]
server-id=2 #设置server-id,必须唯一

启动slave同步依次执行以下三步
stop slave;

CHANGE MASTER TO
MASTER_HOST=‘172.16.*.*‘,
MASTER_USER=‘insure‘,
MASTER_PASSWORD=‘**********‘,
MASTER_LOG_FILE=‘mysql-bin.000002‘,
MASTER_LOG_POS=6523;

start slave;

查看slave状态
show slave status\G;

 

1. 对于机器重启情况, 可手动执行stop slave.  在正常关闭mysql, 重启后,手动start slave, 应该就可以正常同步。

2. 线上系统,重启一定要小心, 重启后监控相关模块是否启动,可以增加mysql slave工作监控。





mysql主从复制

标签:日志   bin   开启   dev   哪些   mysql主从   主从复制   start   logs   

人气教程排行