当前位置: 代码迷 >> MySQL >> MYSQL主备复制结构筹建与切换
  详细解决方案

MYSQL主备复制结构筹建与切换

热度:79   发布时间:2016-05-05 16:43:40.0
MYSQL主备复制结构搭建与切换

1 选择两个服务器,分别作为主备数据库

2 登陆到服务器,安装相同版本mysql

 yum install mysql ; yum install mysql-server;

3 启动mysql服务器 

service  mysqld start

4 分别root登陆mysql 执行如下命令

增加复制用户并授权(主备都在192.168.119.*网段,为了方便主备切换,两边都建立)

GRANT  REPLICATION SLAVE,REPLICATION CLIENT on *.* to repl@'192.168.119.%' identified by '1234';

5 配置/etc/my.cnf

第一服务器(主)

log_bin=mysql-binserver_id=1

第二个服务器(备)

log_bin=mysql-binserver_id=2read_only=1
6 重启两个mysql服务器

7 登陆主(root)执行

show master status\G;

显示

File: mysql-bin.000001 
Position: 106

8 登陆备(root) 执行

测试 mysql -urepl -h192.168.119.128 -p1234 是否能连接到主库,不能需要检查防火墙或者/etc/my.cnf是否有访问限制,修改配置

mysql -uroot登陆本地库执行:

CHANGE MASTER TO  MASTER_HOST='192.168.119.128', MASTER_USER='repl', MASTER_PASSWORD='1234', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=106;
start slave;show slave status\G;

9,验证

     主库上创建表,备库上查看,可以看到

      备库上repl创建表,显示The MySQL server is running with the --read-only option so it cannot execute this statement

      因为配置了备库为read_only

10,后续关注

    以后重启主备库,不用再配置change master。每重启一次主库会发现logfile 变成一个新的文件mysql-bin.000004

11 ,主从切换

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

read-only=1(主库)#read-only=1(备库)

11.2 从库上执行

STOP SLAVE IO_THREAD;SHOW PROCESSLIST;

system user 线程确保状态为:has read all relay log 或者消失

再执行

STOP SLAVE;RESET MASTER;RESET SLAVE;show master status \G;

结果

File: mysql-bin.000001
Position: 106

11.3 主库上执行

RESET MASTER;RESET SLAVE;
CHANGE MASTER TO MASTER_HOST='192.168.119.129',MASTER_USER='repl',MASTER_PASSWORD='1234',MASTER_LOG_FILE='mysql-bin.000001',MASTER_LOG_POS=106;

start slave

11.4 重启主备库,注意先重启新的主库,再启动新的备库

service mysqld restart

11.5 验证

  原来的主库已经变成从库,从库变成主库。

版权声明:本文为博主原创文章,未经博主允许不得转载。

1楼u010850027昨天 20:40
谢谢小伙伴的分享,学习了`(*∩_∩*)′
  相关解决方案