千家信息网

搭建互为主从的MySQL服务器

发表于:2024-09-22 作者:千家信息网编辑
千家信息网最后更新 2024年09月22日,node1的IP地址:192.168.1.254node2的IP地址:192.168.1.253操作系统为RHEL7.3,MySQL版本为5.7.181、修改node1的MySQL配置文件#注意ser
千家信息网最后更新 2024年09月22日搭建互为主从的MySQL服务器

node1的IP地址:192.168.1.254
node2的IP地址:192.168.1.253
操作系统为RHEL7.3,MySQL版本为5.7.18
1、修改node1的MySQL配置文件
#注意server_id字段一定不能一样,由于前面的配置server_id已经配置,且其值唯一,所以此处不再进行配置
修改node1的mysql配置文件
# 服务器的ID,必须唯一,一般设置自己的IP
server_id=254
# 复制过滤:不需要备份的数据库(MySQL库一般不同步)
binlog-ignore-db=mysql
# 开启二进制日志功能,名字可以随便取,最好有含义(比如项目名)
log-bin=lamp-mysql-bin
# 为每个 session 分配的内存,在事务过程中用来存储二进制日志的缓存
binlog_cache_size=1M
# 主从复制的格式(mixed,statement,row,默认格式是 statement)
binlog_format=mixed
# 二进制日志自动删除/过期的天数。默认值为 0,表示不自动删除。
expire_logs_days=7
## 跳过主从复制中遇到的所有错误或指定类型的错误,避免 slave 端复制中断。
## 如:1062 错误是指一些主键重复,1032 错误是因为主从数据库数据不一致
slave_skip_errors=1062
# 作为从服务器时的中继日志
relay_log=lamp-mysql-relay-bin
# log_slave_updates 表示 slave 将复制事件写进自己的二进制日志
log_slave_updates=1
# 主键自增规则,避免主从同步ID重复的问题
auto_increment_increment=2 # 自增因子(根据MySQL服务器数量修改,本例中是2台MySQL服务器)
auto_increment_offset=1 # 自增偏移(从1开始)


2、修改node2的MySQL配置文件
# 复制过滤:不需要备份的数据库(MySQL库一般不同步)
binlog-ignore-db=mysql
# 开启二进制日志功能,名字可以随便取,最好有含义(比如项目名)
log-bin=lamp-mysql-bin
# 为每个 session 分配的内存,在事务过程中用来存储二进制日志的缓存
binlog_cache_size=1M
# 主从复制的格式(mixed,statement,row,默认格式是 statement)
binlog_format=mixed
# 二进制日志自动删除/过期的天数。默认值为 0,表示不自动删除。
expire_logs_days=7
## 跳过主从复制中遇到的所有错误或指定类型的错误,避免 slave 端复制中断。
## 如:1062 错误是指一些主键重复,1032 错误是因为主从数据库数据不一致
slave_skip_errors=1062
# 作为从服务器时的中继日志
relay_log=lamp-mysql-relay-bin
# log_slave_updates 表示 slave 将复制事件写进自己的二进制日志
log_slave_updates=1
# 主键自增规则,避免主从同步ID重复的问题
auto_increment_increment=2 # 自增因子(根据MySQL服务器数量修改,本例中是2台MySQL服务器)
auto_increment_offset=2 # 自增偏移(从2开始)

3、分别在node1和node2上重启MySQL服务
在node1上重启MySQL服务
[root@node1 ~]# systemctl restart mysqld
在node2上重启MySQL服务
[root@node2 ~]# systemctl restart mysqld

4、在node1上进入MySQL数据库,且配置允许从node2同步的账号
[root@node1 ~]# mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.7.18-log Source distribution

Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> grant replication slave, replication client on *.* to 'repl'@'192.168.1.253' identified by 'repl@123';
mysql> flush privileges;
Query OK, 0 rows affected (0.06 sec)

5、在node1上查看并记录binlog文件的position和File的值,配置从机时会用到
mysql> show master status;
+-----------------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+-----------------------+----------+--------------+------------------+-------------------+
| lamp-mysql-bin.000001 | 631 | | mysql | |
+-----------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)

mysql>

6、在node2上将node1作为自己的主服务器,并且开启slave状态。
mysql> change master to master_host='192.168.1.254',master_user='repl', master_password='repl@123', master_port=3306, master_log_file='lamp-mysql-bin.000001', master_log_pos=631, master_connect_retry=30;
mysql> start slave;

7、在node2上查看自己的slave状态。
mysql> show slave status\G;

Slave_IO_Running: Yes
Slave_SQL_Running: Yes
以上两个参数要全部是Yes状态


8、在node2上创建允许从node1同步的账号
[root@node2 ~]# mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.7.18-log Source distribution

Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> grant replication slave, replication client on *.* to 'repl'@'192.168.1.254' identified by 'repl@123';
mysql> flush privileges;


9、在node2上查看并记录binlog文件的position和File的值。
mysql> show master status;
+-----------------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+-----------------------+----------+--------------+------------------+-------------------+
| lamp-mysql-bin.000001 | 474 | | mysql | |
+-----------------------+----------+--------------+------------------+-------------------+


10、在node1上将node2作为自己的主服务器,并且开启slave状态。
mysql> change master to master_host='192.168.1.253',master_user='repl', master_password='repl@123', master_port=3306, master_log_file='lamp-mysql-bin.000001', master_log_pos=474, master_connect_retry=30;
mysql> start slave;

11、在node1上查看自己的slave状态。
mysql> show slave status\G;

Slave_IO_Running: Yes
Slave_SQL_Running: Yes
以上两个参数要全部是Yes状态



12、在node1或node2任意一台数据库中创建数据库,会自动同步到另外一台数据库
mysql> create database netser;
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| netser |
| performance_schema |
| sys |
+--------------------+
5 rows in set (0.09 sec)

在另外一个节点,查看数据库,会看到完全一致的数据信息
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| netser |
| performance_schema |
| sys |
+--------------------+
5 rows in set (0.06 sec)

服务 数据 日志 服务器 数据库 主从 二进制 错误 配置 同步 状态 文件 格式 一致 上将 两个 中用 事件 事务 内存 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 杨浦区网络技术服务内容 远程网关服务器的设置 考研数据库系统概论视频 互联网金融网络技术问题 济宁服务器运维管理系统方案 东华计算机系统与网络技术 党员管理系统数据库验收 25岁用的交友软件开发 北京海南耀天网络技术有限公司 google的服务器地址 服务器远程管理卡需要公网ip吗 项目管理系统+微服务器 数据库负荷很重怎么处理 软件开发问题管控用什么软件 智眸星互联网科技 台州市空间规划地理数据库 保定软件开发应用范围 mysql 数据库软件 亚米通信网络技术公司 狒狒莫古力服务器限制新角色 网络安全检查成立领导小组 网络安全战略高度 慈溪应用软件开发商 nginx文件下载服务器 密云区品牌网络技术推广服务保障 迈克菲安卓网络安全项打不开 腾码网络技术有限公司 校外怎样访问数据库 戴尔服务器电源改装16针 中山服务器托管
0