MYSQL双主节点–更换ip
一、更换双主节点ip
1.停止mysql服务
#安装了supervisor
supervisorctl stop mysql
#未安装
systemctl stop mysqld
2.修改网卡配置信息
注:
ens33
是网卡名称,可能网卡不叫ens33
vi /etc/sysconfig/network-scripts/ifcfg-ens33
3.修改ip配置
#ip
IPADDR=新ip
#网关
GATEWAY=新网关
#子网掩码
NETMASK=255.255.255.0
#dns服务器地址
DNS1=114.114.114.114
4.重启network服务
systemctl restart network
二、重做MySQL双主集群
1.启动mysql
#安装了supervisor
supervisorctl start mysql
#未安装
systemctl start mysqld
2.重做双主集群
如果忘记slave账号则重新创建
CREATE USER 'replication_user'@'%' identified by 'Wo195271.';
GRANT REPLICATION SLAVE on *.* TO 'replication_user'@'%'identified by 'Wo195271.';
FLUSH PRIVILEGES;
- master1获取连接参数
#master2执行命令
SHOW MASTER STATUS;
- master1切换主服务器为master2
MASTER_HOST=‘<主服务器IP地址>’,
MASTER_PORT=‘<端口>’,
MASTER_USER=‘<复制用户>’
MASTER_PASSWORD=‘<复制用户密码>’
MASTER_LOG_FILE=‘<主服务器的二进制日志文件>’
MASTER_LOG_POS=‘<主服务器的二进制日志位置>’
#salve执行命令,填入master2查询到的参数
#停止slave模式
stop slave;
CHANGE MASTER TO MASTER_HOST='new_master2',
MASTER_PORT=3306,
MASTER_USER='replication_user',
MASTER_PASSWORD='Wo195271.',
MASTER_LOG_FILE='mysql-bin.000004',
MASTER_LOG_POS=350;
START SLAVE;
- master1查看状态
确保输出中的
Slave_IO_Running
和Slave_SQL_Running
都是Yes
,这意味着从服务器的复制进程正在运行且正常工作。还要确保输出中的Last_IO_Error
和Last_SQL_Error
都为空,这表示没有发生错误。
show slave status;
- master2获取连接参数
#master1执行命令
SHOW MASTER STATUS;
- master2切换主服务器为master1
MASTER_HOST=‘<主服务器IP地址>’,
MASTER_PORT=‘<端口>’,
MASTER_USER=‘<复制用户>’
MASTER_PASSWORD=‘<复制用户密码>’
MASTER_LOG_FILE=‘<主服务器的二进制日志文件>’
MASTER_LOG_POS=‘<主服务器的二进制日志位置>’
#salve执行命令,填入master1查询到的参数
#停止slave模式
stop slave;
CHANGE MASTER TO MASTER_HOST='new_master1',
MASTER_PORT=3306,
MASTER_USER='replication_user',
MASTER_PASSWORD='Wo195271.',
MASTER_LOG_FILE='mysql-bin.000004',
MASTER_LOG_POS=350;
START SLAVE;
- master2查看状态
确保输出中的
Slave_IO_Running
和Slave_SQL_Running
都是Yes
,这意味着从服务器的复制进程正在运行且正常工作。还要确保输出中的Last_IO_Error
和Last_SQL_Error
都为空,这表示没有发生错误。
show slave status;
3.测试
-
确保两个节点都处于正常运行状态,并且已经建立了双主复制关系。
-
使用以下命令登录到其中一个主节点的MySQL服务器:
mysql -u 用户名 -p -h 主节点IP地址
- 将
用户名
替换为你的MySQL用户名,主节点IP地址
替换为其中一个主节点的IP地址。然后输入密码以登录到MySQL服务器。
- 创建一个测试数据库(可选):
CREATE DATABASE test;
- 在该主节点上创建一个测试表,并插入一些数据:
USE test;
CREATE TABLE test_table (id INT, name VARCHAR(50));
INSERT INTO test_table VALUES (1, 'John'), (2, 'Jane');
- 切换到另一个主节点,使用相同的命令登录:
mysql -u 用户名 -p -h 另一个主节点IP地址
- 将
用户名
替换为你的MySQL用户名,另一个主节点IP地址
替换为另一个主节点的IP地址。然后输入密码以登录到MySQL服务器。
-
检查是否成功复制了先前创建的测试数据库和表。在该主节点上执行以下查询语句:
如果查询返回了先前插入的数据,则表明双主复制在两个节点之间正常工作。
USE test; SELECT * FROM test_table;
-
尝试进行写操作:在任一个主节点上执行INSERT、UPDATE或DELETE语句,并确认数据在两个节点之间同步。
-
进行故障切换测试:可以模拟一个主节点故障,观察系统是否能够自动切换到另一个主节点,并且数据的读写操作可以继续正常运行。