mysql主从复制(互为主从)

原创 2018年04月16日 18:02:06

步骤:
1.
在两台机器上分别添加一个用于从机访问的帐号, 赋予REPLICATION SLAVE权限.
slave用户赋予任何数据库中任何表上的REPLICATION SLAVE权限, 此用户可以在网络任意位置访问, 访问时以密码slave标记.
为了安全,可以指定IP地址,如下:
第一台服务器(IP1)运行:
GRANT REPLICATION SLAVE ON *.* TO 'slave'@ 'IP2' IDENTIFIED BY 'test';
第一台服务器(IP2)运行:

GRANT REPLICATION SLAVE ON *.* TO 'slave'@'IP1' IDENTIFIED BY 'test';

2.修改配置文件,配置服务器编号, 开启bin-log
当使用的是ubuntu的时候, 需要注意一点, /etc/ my.cnf配置文件下的bind-address= 127.0.0.1这一行需要注释, 不然从机在请求时是连接不到的.
编辑/etc/my.cnf
找到[mysqld]这个标签
在它的下面有三行

打开这两行的注释, 注意这里的server-id是服务器编号, 所以, 两台服务器上的值要设置的不一样. 比如12,最好用IP地址最后一段标识。

 

3. 使server-idlog-bin的配置修改生效:
sudo /etc/init.d/mysqld restart


4.
将两台数据库服务器的mysql都锁定,【非常重要】.
mysql命令模式下

SLAVE STOP
FLUSH TABLES WITH READ LOCK;  ##这个一定要先执锁定行后,才能够用show master status;查看状态。
SHOW MASTER STATUS;  ##前面已经查看过了。
此时请保证执行这两条命令的mysql控制台不要退出,【非常重要】.
然后进mysql控制台,分别产看相关信息
IP2服务器上如下:

IP1服务器上如下:


5. 分别重新打开一个mysql控台台(重要), 配置主机
CHANGE MASTER TO
MASTER_HOST = 'host', #
另一台机器的地址
MASTER_PORT = 3306, #
另一台机器的端口
MASTER_USER = 'slave',#
另一台机器上第一步分配的用户名
MASTER_PASSWORD = '000000', #
另一台机器上第一步分配的密码
MASTER_LOG_FILE = 'mysql-bin.000001',#
另一台机器上执行SHOW MASTER STATUS得到的文件名
MASTER_LOG_POS = 237; #
另一台机器上执行SHOW MASTER STATUS得到的偏移量
我分别在新打开的两个mysql>中执行如下:

服务器IP1:

change master to master_host='ip2',master_user='slave',master_password='test',master_log_file='mysql-bin.000005',master_log_pos=106;

服务器IP2

change master to master_host='ip1',master_user='slave',master_password='test',master_log_file='mysql-bin.000005',master_log_pos=106;


6.
开启同步
START SLAVE;

 

MySQL同步故障:"Slave_SQL_Running:No" 两种解决办法

7. 验证正确性
SHOW SLAVE STATUS \G;
如果返回的结果第一列是Waiting for master to send event或者Queueing

 Slave_IO_Running:Yes
Slave_SQL_Running: Yes

就说明配置是正确的, 当然, 还可能会有其他的信息也是正确的, 只不过我这里没有收集到...呵呵
如下:
mysql> SHOW SLAVE STATUS \G;
*************************** 1. row***************************
            Slave_IO_State: 
Waiting for master to send event
               Master_Host: 192.168.1.202
               Master_User: slave
               Master_Port: 3306
             Connect_Retry: 60
           Master_Log_File: mysql-bin.000001
       Read_Master_Log_Pos: 237
            Relay_Log_File: mysqld-relay-bin.000002
             Relay_Log_Pos: 235
      Relay_Master_Log_File:mysql-bin.000001
          
 Slave_IO_Running: Yes
         Slave_SQL_Running: Yes
           Replicate_Do_DB: 

       Replicate_Ignore_DB: 
        Replicate_Do_Table: 
     Replicate_Ignore_Table: 
    Replicate_Wild_Do_Table: 
Replicate_Wild_Ignore_Table: 
                Last_Errno: 0
                Last_Error: 
              Skip_Counter: 0
       Exec_Master_Log_Pos: 237
           Relay_Log_Space: 235
           Until_Condition: None
            Until_Log_File: 
             Until_Log_Pos: 0
        Master_SSL_Allowed: No
        Master_SSL_CA_File: 
        Master_SSL_CA_Path: 
           Master_SSL_Cert: 
         Master_SSL_Cipher: 
            Master_SSL_Key: 
     Seconds_Behind_Master: 0
1 row in set (0.00 sec)
ERROR: 
No query specified

8、查看状态:

show processlist;


每次重启mysql需要update log,所以需要从第三步骤开启;

SMART POINTER(智能指针)

智能指针(smart pointer):智能指针是其实是一个对象A,它带有一个模针成员变量m_p.用该A管理m_p,通过这种管理机制,可以防止由于new而导致的内存泄漏.智能指针对象在使用时像指针一样...
  • zhaozhencn
  • zhaozhencn
  • 2004-02-03 13:51:00
  • 1579

Linux下 Mysql 互为主从

Linux下 Mysql 互为主从配置。系统环境:CentOS 6.5 master1:192.168.100.204 master2:192.168.100.205...
  • doiido
  • doiido
  • 2015-02-28 13:00:21
  • 1505

windows下mysql互为主从(主主复制)

windows下mysql互为主从 mysql主主复制 mysql互为主从
  • starrykey
  • starrykey
  • 2016-08-17 19:26:26
  • 1914

mysql互为主从

A B 为两台MySQL服务器,均开启二进制日志,数据库版本 5.5.2一、服务器参数[A 服务器]server-id = 1binlog-do-db = testbinlog-ignore-db =...
  • carzyer
  • carzyer
  • 2011-06-10 09:32:00
  • 327

MySQL数据库之间互为主从热备设置

1.在数据库中创建同步用户互为主从设置 192.168.0.32为主数据库服务器 192.168.0.33为从数据库服务器在32上创建#创建同步账户 create user 'tongbu'@'1...
  • zhuyunfei
  • zhuyunfei
  • 2017-03-29 19:13:10
  • 1668

KeepAlived+MySQL互为主从

解决Master单点问题,两台mysql互为主备,双向replication。当一master挂了,则将slave切换为master,继续工作。好,给定两台机器 主机A:192.168.1.201 ...
  • socho
  • socho
  • 2016-07-01 23:16:00
  • 9478

Mysql主从复制的配置(双机互为主从)

author: selfimpr blog: http://blog.csdn.net/lgg201 mail: lgg860911@yahoo.com.cn announce: 转载请保留出处   ...
  • great_t
  • great_t
  • 2014-12-26 09:55:58
  • 204

高可用架构-- MySQL主从复制的配置

视频资源:http://www.roncoo.com/course/view/3117ffd4c74b4a51a998f9276740dcfb 环境 操作系统:CentOS-6...
  • alibert
  • alibert
  • 2016-12-09 11:11:56
  • 642

mysql主从复制原理详解

master将改变记录到二进制日志中binlog,slave将master的binlog拷贝到自己的中继日志中,然后执行一遍sql语句就达到同步了 一个服务器当主库,另一个或多个服务器当从库,主...
  • nuli888
  • nuli888
  • 2016-07-08 23:40:30
  • 6583

让两台服务器的MySQL(5.7)数据同步_主主同步(互为主从关系)

网上找的大部分定义master-host的其实在新的MySQL中已经停用了,于是乎很悲剧的自己探索写出了这么一个东西 RedHat版本7.0 MySQL版本 5.7 服务器名称为假的!!! 服务器A...
  • u012476249
  • u012476249
  • 2015-12-07 18:07:12
  • 493
收藏助手
不良信息举报
您举报文章:mysql主从复制(互为主从)
举报原因:
原因补充:

(最多只允许输入30个字)