请稍候...
确定
取消
  • Debianlogo

    Debian

    Debian是一个自由,网络社区活跃,以安全著称深受各国政府部门喜爱的Linux操作系统
  • Debian8下mysql主从节点同步配置

      时间:2016-07-02 10:21:37

      阅读:1209 回复:0 A- A+

      数据安全,数据备份是web运维以及web开发的重中之重,一般关键性项目就已数据库而言要确保至少有一个冗余备份服务器.

      简单来讲mysql数据库主从同步基本原理:

      主库节点Master,会把自己的每一次改动都记录到 二进制日志Binarylog中.

      从库节点Slave, 登陆到主节点上读取master的Binarylog,  写入到自己的中继日志 Relaylog, 然后自己的sql线程会负责读取这个中继日志,并执行一遍,到这里主服务器上的更改就同步到从服务器上了,从而实现主从复制主从数据同步.

      确保数据库数据实时同步,从而实现数据读写分离,容灾等一些特殊业务需求,所以MySQL是数据库主从搭配同步复制也是很有必要的

      今天我们教程主要就是 简单讲讲如何设置我们的mysql数据库实现主从数据同步。

      本教程实际测试为Debian和Ubuntu服务器,但是同样适用于CentOS

      1,主库master的设置:

      打开要做主库的mysql配置文件,如Joe这里:

      vim /etc/mysql/my.cnf
      将配置文件内相关项改为如下:

      server-id               = 1
      log_bin                 = /var/log/mysql/mysql-bin.log
      expire_logs_days        = 10
      max_binlog_size         = 100M
      binlog_do_db            = mydata
      binlog_ignore_db        = mysql information_schema performance_schema
      找到并注释下面部分:
      #bind-address = 127.0.0.1
      #skip-networking
      保存然后退出.

      2,添加一个备份用户:

      我们这里为备份工作添加一个专用用户,进入mysql命令行模式,执行:

      CREATE USER 'slave'@'%' identified by 'password';
      GRANT ALL ON *.* TO 'slave'@'%';
      FLUSH PRIVILEGES;
      slave为用户名,password为slave用户的密码,@后面为host.好了,添加好了,我们重启mysql:
      service mysql restart
      重启后执行:
      SHOW MASTER STATUS;
      这里的master相关信息后面我们要用到.先不管

      3,从库slave设置: 打开从库my.cnf,找到相关项改为如下内容:

      server-id               = 2
      replicate-do-db        = myadata
      replicate-ignore-db    = mysql information_schema performance_schema
      保存退出,重启mysql,然后进入命令行模式:执行:
      SLAVE STOP;
      CHANGE MASTER TO MASTER_HOST="144.172.65.xxx", MASTER_USER="slave", MASTER_PASSWORD="password", MASTER_LOG_FILE="mysql-bin.000001", MASTER_LOG_POS=107;
      SLAVE START;
      其中关于MASTER_LOG_FILE以及MASTER_LOG_POS修改为你master的,就是刚才我们在master执行:SHOW MASTER STATUS;时看到的信息. 执行:
      SHOW SLAVE STATUS;
      我们可以看到从节点slave的状态 执行:
      SHOW SLAVE STATUS\G
      可以看到详细slave信息:
      Slave_IO_Running: Yes
      Slave_SQL_Running: Yes

      表示一切正常,我们在主库master所做的一切操作,将都同步到从库slave. 

      你可以新插入一条数据或者更新一个字段,如果在slave看到同步了更改,那么恭喜你,你配置成功了. 

      Joe在一台美国加州机房的ubuntu服务器上做的主master,在香港一台debian服务器做的从slave,简单测试了下1w条数据同步,虽然跨半个地球,发现速度还非常快的,美国那边更新,香港这边slave几乎实时同步. 

      今天先写到这,如果遇到什么问题可以小Q给Joe,不忙都会回复的.

      网友观点 文明社会,理性发言,和谐讨论

        暂无网友互动记录!

    发表我的看法(70字以内)