mysql主从配置

本文详细介绍了如何配置MySQL的主从同步,包括在主服务器上设置二进制日志、创建同步用户,以及在从服务器上配置并启动同步进程。通过设置server-id、log-bin等参数,并使用CHANGE MASTER TO命令,实现数据库的实时复制。主从状态的检查与连接超时时间的设置确保了数据一致性与系统的稳定性。
摘要由CSDN通过智能技术生成


准备工作
1.主从数据库版本最好一致

2.主从数据库内数据保持一致

3.主数据库:47.98.247.255 /linux

4.从数据库:47.115.38.172 /linux

一.主服务器设置

1.修改主服务器mysql配置

找到主数据库的配置文件my.cnf(或者my.ini),我的在/etc/my.cnf,在[mysqld]部分插入如下两行:vi /etc/my.cnf

[mysqld]
#服务器标志号,注意在配置文件中不能出现多个这样的标识,如果出现多个的话mysql以第一个为准,一组主从中此标识号不能重复。
server-id = 1
 
log-bin=/home/mysql/logs/binlog/bin-log #开启bin-log,并指定文件目录和文件名前缀。
 
#每个bin-log最大大小,当此大小等于500M时会自动生成一个新的日志文件。一条记录不会写在2个日志文件中,所以有时日志文件会超过此大小。
max_binlog_size = 500M 
 
binlog_cache_size = 128K #日志缓存大小
 
binlog-do-db = adb #需要同步的数据库名字,如果是多个,就以此格式在写一行即可。
 
binlog-ignore-db = mysql #不需要同步的数据库名字,如果是多个,就以此格式在写一行即可。
 
#当SlaveMaster数据库读取日志时更新新写入日志中,如果只启动log-bin 而没有启动log-slave-updates则Slave只记录针对自己数据库操作的更新。
log-slave-updates 
 
expire_logs_day=2 #设置bin-log日志文件保存的天数,此参数mysql5.0以下版本不支持。
 
binlog_format="MIXED" #设置bin-log日志文件格式为:MIXED,可以防止主键重复。

在这里插入图片描述

2.重启mysql,创建用于同步的用户账号

  1. 输入service mysqld restart重启mysql
  2. 输入mysql -uroot -p 登录mysql
  3. 创建用户并授权:CREATE USER ‘hj’@‘47.115.38.172’ IDENTIFIED BY ‘hj@123456’;
  4. 分配权限GRANT REPLICATION SLAVE ON . TO ‘hj’@‘47.115.38.172’;
  5. flush privileges; #刷新权限

3.查看master状态,记录二进制文件名(mysql-bin.000001)和位置(759)

SHOW MASTER STATUS;

在这里插入图片描述

二.从服务器slave修改

1.修改mysql配置

[mysqld]
log-bin=mysql-bin #开启二进制日志
server-id=2 #设置server-id

2.重启mysql,打开mysql会话,执行同步SQL语句(需要主服务器主机名,登陆凭据,二进制文件的名称和位置)

CHANGE MASTER TO
MASTER_HOST='47.98.247.255',
MASTER_USER='hj',
MASTER_PASSWORD='hj@123456',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=759;

在这里插入图片描述

3.启动slave同步进程

start slave;

4.查看slave状态

show slave status\G;

在这里插入图片描述
当Slave_IO_Running和Slave_SQL_Running都为YES的时候就表示主从同步设置成功了。接下来就可以进行一些验证了,比如在主master数据库的test数据库的一张表中插入一条数据,在slave的test库的相同数据表中查看是否有新增的数据即可验证主从复制功能是否有效,还可以关闭slave(mysql>stop slave;),然后再修改master,看slave是否也相应修改(停止slave后,master的修改不会同步到slave),就可以完成主从复制功能的验证了。

还可以用到的其他相关参数:

master开启二进制日志后默认记录所有库所有表的操作,可以通过配置来指定只记录指定的数据库甚至指定的表的操作,具体在mysql配置文件的[mysqld]可添加修改如下选项:

# 不同步哪些数据库  
binlog-ignore-db = mysql  
binlog-ignore-db = test  
binlog-ignore-db = information_schema  
  
# 只同步哪些数据库,除此之外,其他不同步  
binlog-do-db = game  

停止主从同步

stop slave;  

连接断开时,重新连接超时时间

change master to master_connect_retry=50; 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值