实现mysql级联复制的方法示例
发表于:2025-01-21 作者:千家信息网编辑
千家信息网最后更新 2025年01月21日,所谓级联复制就是master服务器,只给一台slave服务器同步数据,然后slave服务器在向后端的所有slave服务器同步数据,降低master服务器的写压力,和复制数据的网络IO。一,配置mast
千家信息网最后更新 2025年01月21日实现mysql级联复制的方法示例
所谓级联复制就是master服务器,只给一台slave服务器同步数据,然后slave服务器在向后端的所有slave服务器同步数据,降低master服务器的写压力,和复制数据的网络IO。
一,配置master服务器
1,修改主配置文件
vim /etc/my.cnf
在[mysql]配置块下添加如下两行配置
[mysql]log_bin #开启二进制日志功能server_id=1 #为当前节点设置一个全局惟一的ID号
2,重启mysql服务,使配置生效
systemctl restart mairadb
3,创建有复制权限的用户账号
GRANT REPLICATION SLAVE ON *.* TO 'repluser'@'HOST' IDENTIFIED BY 'replpass';
命令解析:
- 'repluser'@'HOST' :设置用户名即主机ip或网段,网段用%表示 例如10.0.0.%
- IDENTIFIED BY:设置密码
- *.* :表示所有数据库,所有表
- GRANT REPLCATION SLAVE:就是允许该用户复制数据
该命令作用就是授权repluser能拷贝数据库的所有内容
二,中继slave服务器配置
1,修改主配置文件
vim /etc/my.cnf
在[mysql]配置块中添加如下两行配置
[mysqld] log_binserver_id=2 #为当前节点设置一个全局惟一的ID号 read_only=ON #限制从服务器为只读."注意:此限制对拥有SUPER权限的用户均无效"log_slave_updates #该项的作用是把master服务器的二进制日志计入到本机,然后再把二进制日志复制给后端的其他slave服务器
2,重启mysql服务,使配置生效
systemctl restart mariadb
3,使用有复制权限的用户账号连接至主服务器,并启动复制线程
CHANGE MASTER TO MASTER_HOST='host', #指定master主机IP MASTER_USER='repluser', #指定master被授权的用户名 MASTER_PASSWORD='replpass',#指定被授权的用户密码 MASTER_LOG_FILE='mysql-bin.xxxxx', #指定从master服务器的那个二进制日志开始复制 MASTER_LOG_POS=#; #二进制日志位置,可以在master服务器上执行该命令查看,show master logs; 启动复制线程IO_THREAD和SQL_THREAD START SLAVE;
4,查看中继slave服务器状态
MariaDB [(none)]> start slave; Query OK, 0 rows affected (0.00 sec) MariaDB [(none)]> show slave status\G *************************** 1. row *************************** Slave_IO_State: Waiting for master to send event Master_Host: 192.168.68.7 Master_User: repluser Master_Port: 3306 Connect_Retry: 60 Master_Log_File: mariadb-bin.000001 Read_Master_Log_Pos: 557 Relay_Log_File: mariadb-relay-bin.000002 Relay_Log_Pos: 843 Relay_Master_Log_File: mariadb-bin.000001 Slave_IO_Running: Yes "重点关注如果是NO表示线程没起来" Slave_SQL_Running: Yes "重点关注 如果是NO表示该线程没起来" Replicate_Do_DB: Replicate_Ignore_DB: Replicate_Do_Table: Replicate_Ignore_Table: Replicate_Wild_Do_Table: Replicate_Wild_Ignore_Table: Last_Errno: 0 Last_Error: Skip_Counter: 0 Exec_Master_Log_Pos: 557 Relay_Log_Space: 1139 Until_Condition: None Until_Log_File: Until_Log_Pos: 0 Master_SSL_Allowed: No Master_SSL_CA_File: Master_SSL_CA_Path: Master_SSL_Cert: Master_SSL_Cipher: Master_SSL_Key: Seconds_Behind_Master: 0 "该项表示同步时间 0表示即使同步" Master_SSL_Verify_Server_Cert: No Last_IO_Errno: 0 Last_IO_Error: Last_SQL_Errno: 0 Last_SQL_Error: Replicate_Ignore_Server_Ids: Master_Server_Id: 1
三,后端slave配置
1,修改配置文件
vim /etc/my.cnf
在[mysql]配置块中添加如下两行配置
[mysqld] server_id=3 #为当前节点设置一个全局惟一的ID号read_only=ON #限制从服务器为只读."注意:此限制对拥有SUPER权限的用户均无效"
2,重启mysql服务,使配置生效
systemctl restart mariadb
3,使用有复制权限的用户账号连接至主服务器,并启动复制线程
CHANGE MASTER TO MASTER_HOST='中继host', #指定中继slave主机IP MASTER_USER='repluser', #指定master被授权的用户名 MASTER_PASSWORD='replpass',#指定被授权的用户密码 MASTER_LOG_FILE='mysql-bin.xxxxx', #指定从中继slave服务器的那个二进制日志开始复制 MASTER_LOG_POS=#; #二进制日志位置,可以在slave服务器上执行该命令查看,show master logs; 启动复制线程IO_THREAD和SQL_THREAD START SLAVE;
4,查看slave服务器状态
MariaDB [(none)]> start slave; Query OK, 0 rows affected (0.00 sec) MariaDB [(none)]> show slave status\G *************************** 1. row *************************** Slave_IO_State: Waiting for master to send event Master_Host: 192.168.68.17 Master_User: repluser Master_Port: 3306 Connect_Retry: 60 Master_Log_File: mariadb-bin.000001 Read_Master_Log_Pos: 557 Relay_Log_File: mariadb-relay-bin.000002 Relay_Log_Pos: 843 Relay_Master_Log_File: mariadb-bin.000001 Slave_IO_Running: Yes "重点关注如果是NO表示线程没起来" Slave_SQL_Running: Yes "重点关注 如果是NO表示该线程没起来" Replicate_Do_DB: Replicate_Ignore_DB: Replicate_Do_Table: Replicate_Ignore_Table: Replicate_Wild_Do_Table: Replicate_Wild_Ignore_Table: Last_Errno: 0 Last_Error: Skip_Counter: 0 Exec_Master_Log_Pos: 557 Relay_Log_Space: 1139 Until_Condition: None Until_Log_File: Until_Log_Pos: 0 Master_SSL_Allowed: No Master_SSL_CA_File: Master_SSL_CA_Path: Master_SSL_Cert: Master_SSL_Cipher: Master_SSL_Key: Seconds_Behind_Master: 0 "该项表示同步时间 0表示即使同步" Master_SSL_Verify_Server_Cert: No Last_IO_Errno: 0 Last_IO_Error: Last_SQL_Errno: 0 Last_SQL_Error: Replicate_Ignore_Server_Ids: Master_Server_Id: 1
5,最后在master服务器上创建数据库测试即可查看是否同步
级联复制特点
- 降低master服务器的压力,网络io压力
- 但是会产生数据不一致的问题
总结
- 中继slave需要打开二进制日志,必须加上log_slave_updates配置项
- 注意read_only=ON作用,限制从服务器为只读."注意:此限制对拥有SUPER权限的用户均无效"
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
服务
服务器
配置
用户
二进制
数据
日志
线程
同步
权限
限制
中继
命令
就是
重点
主机
作用
全局
压力
密码
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
数据库的并发控制 完整版
数据库有上限吗
自己建造我的世界服务器
网络数据库课程介绍
fifa22香港服务器
飞鱼星dhcp服务器
hp服务器风扇
网络安全实验教程第四版
腾诚软件开发是培训
服务器iis管理器打开很慢
谷歌网络安全最新消息
如何部署svn服务器
传入数据库出现中文乱码
铁路局网络安全管理办法
斯凯网络技术
数据库迁移事故测试
网络安全和信息化建设的矛盾
广东德搜网络技术有限公司
苏州专业软件开发定制公司
联合阅读软件开发
华为服务器合作伙伴名单
美国科技公司数据库
深圳凯翔软件开发公司
网络安全bat
开票软件数据库连接解决办法
局主要领导网络安全
网络安全相关的小论文100字
检测软件开发的主要技术
vf数据库教学反思
公司云服务器