跳转到主内容
websoft网络软件专家 - 深耕网络技术,打造实用软件!

MYSQL学习总结(五):MYSQL主从搭建

测试机器:主 192.168.1.71   从 192.168.1.74第一步:在主库上生成赋予从库权限帐号(见上面mysql赋权)

第二步:修改主配置文件server-id = 1               //主数据库id binlog-do-db = db1         //需要同步的库1 binlog-do-db = db2         //需要同步的库2 log-bin = mysql-bin         //打开二进制日志第三步:重启主服务器第四步:主服务器上执行锁表 flush tables with read lock;第五步:主服务器上执行show master status;记住二进制文件和位置第六步:获取主上面的快照,目前有二种方法,一种是直接tar打包,另一种是mysqldump.然后拷到从库相应数据目录。不过听说有用lvm的,很快,一直没找对资料学习。

第七步:解锁主库 unlock tables;第八步:修改从库配置文件server-id = 2        //从服务器id,避免与主重复log-slave-updates   //将从服务器sql进程更新的数据,写进自己的二进制日志master-connect-retry = 60 //当从断开后,60秒后再次连接主第九步:在从库上设置同步slave stop;change master to master_host=’192.168.1.71’,master_user=’第一步生成的用户’,master_password=’第一步生成的密码’,master_log_file=’mysql-bin.000062’,master_log_pos=316406;第十步:启动从库 slave start; 并查看从库状态 show slave status\g,如图:注意观察该状态的slave_io_running,slave_sql_running为yes,即主从通讯正常。seconds_behind_master为0,说明主从同步延时状态良好。

说明:主从复制是通过主的dump线程和从的io线程,sql线程来实现的。可以通过登陆mysql 使用 show processlist查看线程状态。由从的io线程往主服务器拉二进制日志,然后写入到自己的中继日志(即relay_log_file),然后通过 从的sql线程读取中继日志将sql语句及操作写入本地数据库。

mysql主从运行中常见问题:1. 确保主从服务器mysql均已正常运行,二进制日志均已打开,从中可以使用复制帐号进行访问主库,2. 从上面io线程显示为no,则start slave io_thread;3. 从上面sql线程显示为no,需要查找错误日志,定位到问题后,手动修改或者直接跳过这个操作(确保安全),跳过这个操作可使用set global sql_slave_skip_counter = 1;然后 start slave;4. 重新做主从,需要删除从数据库中的master.info,relay-log.info 5. 当主服务器挂掉或性能下降后,使用从服务器顶上(确保从上已经与同步到主服务器的所有数据,可通过查看主的状态中的pos和文件,再根据从的状态中的mster_log_file,read_master_log_pos,relay_master_log_file,exec_master_log_pos来判断),需要执行:stop slave io_thread;stop slave;reset master;同时删除master.info relay-log.info重启从mysql以上就是MYSQL学习总结(五):MYSQL主从搭建的内容,更多相关内容请关注PHP中文网(www.php.cn)!

MySQL(Linux)

MySQL 9.6.0是面向Linux平台的2026年创新版本,核心架构迎来重大革新。其将外键约束与级联操作从InnoDB引擎层上移至SQL层,确保所有数据变更均被完整记录至Binlog,彻底解决了CDC(变更数据捕获)与主从复制中的数据不一致难题。此外,该版本引入container_aware启动选项以原生适配容器环境,并对审计日志进行了组件化重构,为追求极致数据一致性与云原生体验的开发者提供了全新选择。

下载

相关文章