MySQL主从是如何实现切换的
admin
2023-03-18 20:04:50
0

下文主要给大家带来MySQL主从是如何实现切换的,希望MySQL主从是如何实现切换的能够带给大家实际用处,这也是我编辑这篇文章的主要目的。好了,废话不多说,大家直接看下文吧。

在一主两从环境中,模拟测试当主库宕机后的切换步骤

我的系统为 CentOS6.7 x64

mysql 版本为 5.5.33 并通过二进制包安装

上个截图,三台系统和 mysql 都是同样的版本,同样步骤的安装

[root@mysql-01 ~]# mysql -V

mysql  Ver 14.14 Distrib 5.5.33, for linux2.6 (x86_64) using readline 5.1

[root@mysql-01 ~]# uname -r

2.6.32-573.el6.x86_64


三台环境的主机名和 ip 地址,职务

mysql-01   192.168.240.137   Master

mysql-02   192.168.240.138   Slave-01

msyql-03   192.168.240.139   Slave-02

MySQL主从是如何实现切换的

Master上的操作

将 master 192.168.240.137 关机,模拟真实场景中的宕机

[root@mysql-01 ~]# /etc/init.d/mysqld stop

Shutting down MySQL... SUCCESS!

[root@mysql-01 ~]# lsof -i :3306

[root@mysql-01 ~]#


Slave-01上的操作

确保 slave 数据库上已经执行了 relay log 中的全部命令

在 slave 上执行 show processlist; 命令,返回结果如下,说明更新执行完毕

Slave has read all relay log; waiting for the slave I/O thread to update it

在每个从库上行 stop slave io_thread; 停止 IO 线程

mysql> show processlist;

mysql> stop slave io_thread;


编辑 /etc/my.cnf 文件,在 [ mysqld ] 目录下,开启 log-bin=mysql-bin 选项

并且注意 server-id ,不能和 Slave-02 上的 server-id 相同

[root@mysql-02 ~]# vim /etc/my.cnf

log-bin=mysql-bin

server-id=2


编辑完后保存退出,重启 mysql 服务

[root@mysql-02 ~]# /etc/init.d/mysqld restart

Shutting down MySQL. SUCCESS!

Starting MySQL.. SUCCESS!


在 Slave-01 上登录 mysql

执行 reset master 命令,将 Slave-01 升级为 Master

mysql> reset master;

Query OK, 0 rows affected (0.01 sec)

并查看 master 状态

mysql> show master status\G

*************************** 1. row ***************************

            File: mysql-bin.000001

        Position: 107

    Binlog_Do_DB:

Binlog_Ignore_DB:

1 row in set (0.00 sec)


创建一个用于同步的账号并刷新

mysql> grant replication slave on *.* to yuci@'%' identified by '123456';

Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;

Query OK, 0 rows affected (0.01 sec)


编辑 /etc/hosts 文件,添加 ip 地址及对应的主机名

(我使用的的 vmware 的 NAT 模式)

[root@mysql-02 ~]# vim /etc/hosts

192.168.240.138   mysql-02

192.168.240.139   mysql-03


在 Slave-02 上的操作

同样先添加 ip 地址及对应的主机名

[root@mysql-03 ~]# vim /etc/hosts

192.168.240.138   mysql-02

192.168.240.139   mysql-03


测试刚才创建的 yuci 用户能否在 Slave-02 上登录 Slave-01 的数据库

[root@mysql-03 ~]# mysql -uyuci -p123456 -h292.168.240.138

Welcome to the MySQL monitor.  Commands end with ; or \g.

Your MySQL connection id is 5

。。。。。。。。。。。。

mysql>

yuci 用户登录成功,说明可以使用该账号进行数据同步


使用 root 用户登录 mysql 服务,查看更新是否全部完成

[root@mysql-03 ~]# mysql -uroot -p123456

mysql> show processlist;

Slave has read all relay log; waiting for the slave I/O thread to update it

停止 slave 服务

mysql> stop slave;

Query OK, 0 rows affected (0.01 sec)


输入主库信息以及用于同步的账号,注意 log-file和log-pos,这两个值是之前在 Slave-01 上执行 show maste status\G 的返回值

mysql> CHANGE MASTER TO

    -> MASTER_HOST='192.168.240.138',

    -> MASTER_PORT=3306,

    -> MASTER_USER='yuci',

    -> MASTER_PASSWORD='123456',

    -> MASTER_LOG_FILE='mysql-bin.000001',

    -> MASTER_LOG_POS=107;

Query OK, 0 rows affected (0.01 sec)


开启 slave 服务

mysql> start slave;

Query OK, 0 rows affected (0.00 sec)


查看 slave 状态的 IO、SQL线程,两个 yes 说明切换完成

mysql> show slave status\G

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

到此为止主从切换的操作已经全部完成,Slave-01 已经升级为 Master 它的从云服务器是 Slave-02


在 Slave-01 上创建一个新的数据库,看看是否能够同步

Slave-01 上

mysql> create database tongbu;

Query OK, 1 row affected (0.00 sec)

mysql> show databases;

+--------------------+

| Database        |

+--------------------+

| information_schema |

| mysql          |

| performance_schema |

| tongbu        |         

+--------------------+

5 rows in set (0.00 sec)

Slave-02 上

mysql> show databases;

+--------------------+

| Database       |

+--------------------+

| information_schema |

| mysql         |

| performance_schema |

| tongbu        |

+--------------------+

5 rows in set (0.00 sec)

对于以上关于MySQL主从是如何实现切换的,大家是不是觉得非常有帮助。如果需要了解更多内容,请继续关注我们的行业资讯,相信你会喜欢上这些内容的。

相关内容

热门资讯

AI开源公开信签署企业增至50... IT之家 7 月 26 日消息,英伟达、微软、IBM、Meta 等 25 家美国科技企业本周(7 月...
南阳快手短视频代运营企业的服务... 在短视频平台快速发展的背景下,企业通过快手等渠道进行内容运营已成为常见的市场动作。对于希望借助短视频...
普通人该如何跟上科技发展的步伐 这个被称作科技的词汇, 听起来既有宏大之感, 又颇为遥远, 好似仅仅归属于在实验室里专心致志钻研的科...
原创 王... 菲尔兹奖名单一出,邓煜和王虹两位华人数学家共同获奖,本应是一件令人振奋的喜讯。然而,王虹那段仅3分1...
《万物》杂志首个阅读空间亮相正... 26日,由国内知名的青少年家庭科普期刊《万物》杂志与广州正佳自然科学探索中心联合打造的阅读互动空间—...
从康复机器人到脑机接口 智能康... 天津北方网讯:对脑卒中患者来说,重新抬起手臂、迈出一步,往往需要持续的康复训练,逐步恢复运动功能;对...
原创 苹... 当苹果、谷歌、斯坦福、麻省理工都无法留住一位年轻的中国AI天才时,究竟是什么力量吸引他毅然回国?为何...
为什么新能源车供应链要本地化? 当前汽车产业变革加速,电动化成为核心发展方向。车企为了在激烈市场中站稳脚跟,必须优化生产结构。其中,...
携程罚单的真正影响,不是酒店变... 文 | 听风译码 7月25日,市场监管总局对携程开出51.79亿元天价罚单。 全网叫好。 但如果你...
自己管理自己,我国成功发射两颗... 7月24日消息,力箭一号遥十五运载火箭今日在东风商业航天创新试验区成功发射,以“一箭5星”方式将5颗...