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-bin
server_id=1

第二个服务器(备)

log_bin=mysql-bin
server_id=2
read_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 验证

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

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值