2:基于二进制日志文件位置的复制
发表于:2024-11-26 作者:千家信息网编辑
千家信息网最后更新 2024年11月26日,服务器 192.168.1.2 (master) ,服务器 192.168.1.3 (slave)要将master配置为使用基于二进制日志文件位置的复制,必须启用二进制日志记录并建立唯一的server
千家信息网最后更新 2024年11月26日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安全错误
数据库的锁怎样保障安全
浪讯网络技术有限公司
湘潭市网络安全委员会
游戏软件开发和管理
太仓易飞软件开发
服务器主机怎么固定
阿里云域名配置服务器
2020年国家网络安全月
网络安全问答题目
pore服务器管理器
abcdefg网络技术
软件开发过程中有哪些小组
阳光电源软件开发有前景不
小学生网络安全内容儿歌
沈阳航空网络安全有限责任r
服务器机房的布线视频
软件开发技能书籍
vba可以用来做数据库么
数据库顺序
在线互联网科技
谈谈对计算机网络技术的认识
小语代理服务器
工业互联网络技术就业
金山区自动网络技术开发材料
鹏哥说软件开发
海报网络安全人人有责
美工软件开发
数据库中不存在
武汉创冠网络技术有限公司
无人直播软件开发
合肥皮诺客互联网科技公司