当mysql数据库主数据库down掉后,如何进行主从切换。

mysql主从切换

在真实的生产环境中,总会有一些意外。

当企业的数据库集群有机器不幸down掉的时候,怎么把从库切换成主库呢。

可以总结为如下步骤

 

一.登录从库关闭io进程,确保relay log已被完全执行,并根据当前pos选取出下一个master。

mysql -uroot -ptqw961110

stop slave io_thread;    #关闭io进程

show processlist;          #查看还有什么进程在运行。

当进程运行到最后,显示Slave has read all relay log; waiting for more updates,则证明relay  log已被完全读取并执行完毕。

show slave status \G;   查看从库slave状态

看到从库关于master的信息全部写在mysql.slave_master_info中

select * from mysql.slave_master_info; 

看到master_log的pos记录是155.

这时我们需要登录上所有的从库,并重复上述查看master信息的步骤,对比各自pos的值,并选取最大值得从库作为下一个master。

 

二.清除从库的master信息,配置从库成为master。

选取到目标slave后,登上数据库,停掉slave;

mysql  -uroot  -ptqw961110

stop slave;

drop table  mysql.slave_master_info;                                                                  #删除master_info信息表

create user 'test'@'%' identified with mysql_native_password by 'tqw961110';   #创建一个新的用户

grant replication slave on *.* to 'test'@'%';                                                           #授权

flush privileges;                                                                                                     #刷新

退出数据库,进入数据库目录。

删除relay log

rm -f *relay*

编辑配置文件

vim /etc/my.cnf

log-bin=mysql-bin
server-id=1

如果有log-slaves-updates和read-only则要注释掉

重启mysql

systemctl  restart  mysql

登录上mysql

执行

reset  master  (也可以不执行)

show master status ;    #查看master信息

 

四.修改其余从库的master信息

登录其余数据库

stop  slave;

change master to master_host='172.16.1.22', master_user='test', master_user='tqw961110', master_log_file='mysql-bin.000001', master_log_pos=155;

start  slave;

show slave status \G;

假如io和sql两个线程都启动了,证明切换成功。

 

转载于:https://www.cnblogs.com/QicongLiang/p/9959276.html

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值