天天看点

记一次centos 7下 Mysql主从复制笔记

--------------前提说明:

如果主库是之前存在的,先备份,在从服务器上边新建一个和主库一模一样的数据库,并且把主库原有的数据搬过来

192.168.174.128    主库 (centos 7)

192.168.174.131    从库  (centos 7)

配置文件的位置: vi /etc/my.cnf

------------------  主库  ---------

server-id = 1        # 节点ID,确保唯一

log-bin = mysql-bin     #开启mysql的binlog日志功能

sync_binlog = 1         #控制数据库的binlog刷到磁盘上去 , 0 不控制,性能最好,1每次事物提交都会刷到日志文件中,性能最差,最安全

binlog_format = mixed   #binlog日志格式,mysql默认采用statement,建议使用mixed

expire_logs_days = 7                           #binlog过期清理时间

max_binlog_size = 100m                    #binlog每个日志文件大小

binlog_cache_size = 4m                        #binlog缓存大小

binlog_do_db = user                           # 要同步的数据库,多个复制这句话,写多行

max_binlog_cache_size= 512m              #最大binlog缓存大

binlog-ignore-db=mysql #不生成日志文件的数据库,多个忽略数据库可以用逗号拼接,或者 复制这句话,写多行

auto-increment-offset = 1     # 自增值的偏移量

auto-increment-increment = 1  # 自增值的自增量

slave-skip-errors = all #跳过从库错误

## 登陆主库  创建用户专门用来主从同步

CREATE USER cdn IDENTIFIED BY 'Admin@123';

grant replication slave on *.* to 'cdn'@'%'  identified by 'Admin@123';

# 查看主库的状态

show master status;

记住 File 和 Position(从库会用到)

主库上查看愚笨主库连接的从库

show slave hosts;

-----------  从库 -------------

server_id = 2

log_bin = mysql-bin        #开启日志

binlog_format=MIXED        #日志记录的格式

max_binlog_size = 512M     #单个日志文件最大

expire_logs_day = 3       #日志有效期(天)

replicate_do_db = user     #是在slave上配置,指定slave要复制哪个库,多个就复制本行

replicate-ignore-db=mysql,performance_schema,information_schema #是在slave上配置,指定slave要忽略哪个库

relay_log_recovery = 1     #从库建议开启,有利于数据一致性

log_slave_updates = 1      #如果从库还会用做主库,建议开启

#登陆从库

stop slave;

change master to

master_host='192.168.174.128',

master_user='cdn',

master_password='Admin@123',

master_port=3306,

master_log_file='mysql-bin.000012', 

master_log_pos=154;

start slave;

查看同步状态 show slave status\G

       主要看这两项

      Slave_IO_Running: Yes

      Slave_SQL_Running: Yes

------>>>>>>>>>>>>      Slave_IO_Running: No  -------

1、如果是虚拟机克隆,需要修改mysql的uuid,文件在位置   find -name auto.cnf

2、看日志文件比那好是否与主库一致:

master_log_file='mysql-bin.000012', (主库的信息)

master_log_pos=154; (主库信息)