千家信息网

MySQL主从是如何实现切换的

发表于:2025-01-23 作者:千家信息网编辑
千家信息网最后更新 2025年01月23日,下文主要给大家带来MySQL主从是如何实现切换的,希望MySQL主从是如何实现切换的能够带给大家实际用处,这也是我编辑这篇文章的主要目的。好了,废话不多说,大家直接看下文吧。在一主两从环境中,模拟测试
千家信息网最后更新 2025年01月23日MySQL主从是如何实现切换的

下文主要给大家带来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

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

切换 服务 主从 数据 同步 登录 主机 命令 地址 数据库 用户 账号 下文 两个 内容 文件 步骤 版本 状态 环境 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 湖北数字化城管软件开发 网络安全威胁到哪些方面 服务器的卡槽指的是显卡吗 建数据库例题 锡山区环保网络技术收购价格 2021国家网络安全总结 余姚红杉网络技术有限公司 怎么跟和平精英客服索要服务器 excel数据库管理技巧 网信坏网络安全技 构建网络安全教育体系 香港服务器软件 杨浦区品质软件开发销售公司 王者荣耀服务器选择 与无人机相似的无线网络技术 高一计算机网络技术课程 小学网络安全教育策略 福州企锐网络技术有限公司 信息化的快速发展与网络安全 梦桜服务器 关于服务器安全登录的小技巧 怎么查询数据库的列名 现代化网络安全作用 辽宁机电软件开发注意事项 车多网络技术有限公司照片 如何运作软件开发 广东推荐的软件开发服务保障 服务器只通过域名连接 浦东新区市场软件开发代理品牌 网络安全和信息化发言材料
0