当前位置:Gxlcms > 数据库问题 > MySQL主从复制配置

MySQL主从复制配置

时间:2021-07-01 10:21:17 帮助过:3人阅读

主库配置

1、创建复制用户

从库通过此用户身份在主库拉二进制日志。

GRANT REPLICATION SLAVE,REPLICATION CLIENT ON *.* TO slave_1@‘%‘ IDENTIFIED BY ‘gechong‘;

2、主库配置

修改my.cnf

server-id=1   #必须有 而且必须唯一
log-bin=/var/log/mysql/mysql_bin.log  #二进制文件的路径
binlog-do-db=employees   #需要记录二进制日志的库
binlog-ignore-db=mysql,information_schema  #忽略的库
sync_binlog=1    #即时记录,防止事务未提交而丢失二进制日志

技术分享

备库配置

1、备库配置

修改my.cnf文件

server-id=2
log-bin=/var/log/mysql/mysql_bin.log
log-slave-updates=1
read-only=1   #阻止任何没有特权权限的线程修改数据,避免与主库的数据冲突

replicate-do-db=employees
replicate-ignore-db=mysql,information_schema


2、启动复制

在mysql中运行

stop slave; --首先关闭
change master to master_host=‘IP‘,
master_user=‘slave_1‘,
master_password=‘123456‘,
master_log_file=‘mysql_bin.000006‘,
master_log_pos=106;
start slave; --启动

如果slave_io_running和slave_sql_running都是yes,配置成功。

技术分享



注意事项

关于mysql主从配置的简单介绍到此。除此之外,关于这个主题还有不少值得注意的关键点。

复制的方式

复制的方式分为基于行的 和基于语句的。

基于语句的方式(5.0以及之前的版本支持),因为从库重做语句有时间差,所以对于时间戳会有误差。

基于行的方式会将实际数据记录到二进制文件,克服了以上类似的弊端。


主库和从库数据冲突

从库主要是用作读取数据,与主库同步。如果随意修改从库,很可能造成数据的冲突和不一致。

在从库中配置 read_only=1 能有效避免。


数据库崩溃造成事件丢失

sync_binlog=1

该配置作用是,mysql每次提交事务前会将二进制日志同步到磁盘,防止数据库崩溃造成丢失。


总结

除了一主一从之外,还能允许一主多从的结构。这样无疑对与少量写大量读的系统十分有用。

1)灾难恢复,将一台从服务器部署到远端,能防火防震防盗防水灾。

技术分享


MySQL主从复制配置

标签:

人气教程排行