2:基于二进制日志文件位置的复制
发表于:2025-01-23 作者:千家信息网编辑
千家信息网最后更新 2025年01月23日,服务器 192.168.1.2 (master) ,服务器 192.168.1.3 (slave)要将master配置为使用基于二进制日志文件位置的复制,必须启用二进制日志记录并建立唯一的server
千家信息网最后更新 2025年01月23日2:基于二进制日志文件位置的复制
- 服务器 192.168.1.2 (master) ,服务器 192.168.1.3 (slave)
- 要将master配置为使用基于二进制日志文件位置的复制,必须启用二进制日志记录并建立唯一的server-id。要配置二进制日志和server ID选项,请关闭MySQL服务器并编辑my.cnf或my.ini文件。在配置文件的[mysqld]部分中,添加log-bin和server-id选项。如果这些选项已经存在,但是注释掉了,取消注释并根据您的需要修改它们。
- 在master上,打开对应的my.cnf
- 重启mysql,进入mysql,查看对应的server_id是否设置成功
- mysql> show variables like 'server_id';
- +---------------+-------+
- | Variable_name | Value |
- +---------------+-------+
- | server_id | 1 |
- +---------------+-------+
- 1 row in set (0.00 sec)
- 表示设置是成功的
- 在master上,创建复制使用的用户(每个slave都使用MySQL用户名和密码连接到master,因此master必须有一个用户帐户可以让slave用来连接。任何帐户都可以用于此操作,只要授予它REPLICATION SLAVE特权。)
- 进入mysql,执行以下命令
- mysql> CREATE USER 'lisi'@'%' IDENTIFIED BY 'Lisi@123456';
- Query OK, 0 rows affected (0.00 sec)
- mysql> GRANT REPLICATION SLAVE ON . TO 'lisi'@'%';
- Query OK, 0 rows affected (0.00 sec)
- 接下来通过FLUSH刷新所有表和块写入语句
- mysql> FLUSH TABLES WITH READ LOCK;
- Query OK, 0 rows affected (0.00 sec)
- 然后确定当前的二进制日志文件名称和位置:
- mysql> show master status;
- +------------------+----------+--------------+------------------+-------------------+
- | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
- +------------------+----------+--------------+------------------+-------------------+
- | mysql-bin.000005 | 802858 | | | |
- +------------------+----------+--------------+------------------+-------------------+
- 1 row in set (0.00 sec)
- 在slave上,设置server_id,然后重启slave的mysql
- 在slave上,在slave上设置master配置
- mysql> CHANGE MASTER TO MASTER_HOST='192.168.1.2', MASTER_USER='lisi', MASTER_PASSWORD='Lisi@123456', MASTER_LOG_FILE='mysql-bin.000005',MASTER_LOG_POS=802858;
- 参数讲解
- MASTER_HOST master的ip地址
- MASTER_USER master的复制用户名
- MASTER_PASSWORD master的复制用户的密码
- MASTER_LOG_FILE master的二进制文件
- MASTER_LOG_POS master的二进制文件位置
- mysql> CHANGE MASTER TO MASTER_HOST='192.168.1.2', MASTER_USER='lisi', MASTER_PASSWORD='Lisi@123456', MASTER_LOG_FILE='mysql-bin.000005',MASTER_LOG_POS=802858;
- 在slave上,启动复制
- mysql> start slave;
- Query OK, 0 rows affected (0.00 sec)
- 查看slave状态
- mysql> show slave status\G
- 可以查看这两个是Yes那就说明成功了
- 在master上
- mysql> UNLOCK TABLES;
- Query OK, 0 rows affected (0.00 sec)
- 下面就是在mysql中的数据库中随便操作一下数据,看下是否同步,如果同步则表示没有问题,有问题,请及时查看slave的mysql错误日志
注意:
- 需要验证一下master的复制账号是否能远程登录
- 复制组中的每个服务器必须配置唯一的server ID
这次操作踩的坑:
- Q: Can't connect to MySQL server on 'server' 在当前主机上 mysql -uUserName -p -h localhost 可以连接上 mysql -uUserName -p -h 'ip地址' 连接不上
- A:先按照https://dev.mysql.com/doc/refman/8.0/en/can-not-connect-to-server.html介绍的方法进行排查,最后还发现连接不上,如果是阿里云的服务器,那么可能就是防火墙把3306d端口给关了,那么就要在防火墙把这个端口给放开
- 或者进入https://help.aliyun.com/document_detail/25471.html?spm=a2c4e.11153987.0.0.2de65a75vopCz7进行设置
- Q:在slave机器上mysql -uUserName -p -h 'master的ip地址' 可以连接上,但show slave status是下图
* - A:查看错误日志
- 2026是ssl错误,说明我们启动了ssl连接
- 这时候需要在master和slave上的my.conf文件加上以下行
- 然后重启mysql,如果在mysql中看到以下结果,就说明ssl被关闭了
- 这时候如果slave还是连接不上master的话,我们再看一下show slave status的信息
- 如果Master_SSL_Allowed为Yes,那么就要改为No,具体修改在change master语句里面改,本次我们的修改例子为
CHANGE MASTER TO MASTER_HOST='192.168.1.2', MASTER_USER='lisi', MASTER_PASSWORD='Lisi@123456', MASTER_LOG_FILE='mysql-bin.000005',MASTER_LOG_POS=802858,master_ssl=0; 主要是master_ssl=0然后在执行一下start slave。
参考资料:https://dev.mysql.com/doc/refman/5.7/en/binlog-replication-configuration-overview.html
PREV:1:MySQL的复制原理 https://blog.51cto.com/itzhoujun/2352587
NEXT:3:添加一个slave到已有的复制环境 https://blog.51cto.com/itzhoujun/2351567
文件
二进制
日志
服务器
用户
服务
配置
位置
成功
地址
错误
密码
就是
帐户
数据
注释
用户名
端口
语句
问题
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
sql数据库怎么输代码
怎么备份织梦数据库文件
电商网络技术教学工作总结
自查网络安全小妙招
计算机网络技术职业选择
服务器管理器怎么不自动开启
网络安全等级保护标准2.0解读
网络安全技术的缺点
大华监控服务器管理系统
杭州千炬互联网科技
广东销售管理软件开发
安徽数据网络技术咨询报价
在济南学习软件开发哪里好
5m带宽的服务器
上海傲文网络技术
苹果se2id连接服务器连不上
广西计算机网络技术学院排名
数据库将e-r图规范化
混沌骑士数据库
hive与关系型数据库的共同点
免费云服务器永久使用推荐
大唐无双怎么看开服务器多少天
公务员的网络安全干什么工作
cf服务器怎么提升安全分
软件开发的标杆企业
地下城服务器列表
在济南学习软件开发哪里好
软件开发 自定义字段
网络安全反黑
济南云畅网络技术有限公司