十一、mysql主从

一、机器的网卡/mac地址/ip地址不能一样

二、安装的mysql数据的auto.conf中的server-id不能一样

三、关闭防伙墙

四、mysql的 my.cof配制

主mysql配制

#主从配制
server-id=153
innodb_flush_log_at_trx_commit=1
#sysc_binlog=1
log-bin=meixi-bin
#0 表示读写  1只读 只参做从机
read-only=0
#mysql-8置日志文件保留的时长,单位是秒
#binlog-expire-logs-seconds=6000

#控制单个二进制日志大小。此参数的最大和默认值是1GB
max_binlog_size=200M

#可选设置不要复制的数据库
binlog-ignore-db=mysql
binlog-ignore-db=sys
binlog-ignore-db=performance_schema
binlog-ignore-db=information_schema

#可选 设置需要复制的数据库,默认全部记录。
binlog-do-db=test_files
binlog-do-db=test_message
binlog-do-db=test_uaa

#设置binlog格式
#binlog_format=STATEMENT


设置完后重启mysql
进入mysql查看主库状态

 show master status;
image.png

从库配制


#从机配制
server-id=156
#中继日志
relay-log=meixi-relay

五、建立专有主从复制用户

登录mysql后执行
5.5、5.7版本mysql

grant replication slave on *.*  to '用于从机用户名'@'从机数据库ip' identified by '从机密码'
grant replication slave on *.*  to 'mxslave'@'%' identified by 'meixi123456'

查看:
show grants for 'mxslave'@'%';

5.8版本mysql

CREATE USER 'slave1'@'%’IDENTIFIED BY '123456’;
GRANT REPLICATION SLAVE ON *.* To 'slave1'@'%';
#此语句必须执行。否则见下面。
ALTER USER 'slave1'@'%’工IDENTIFIED WITH mysql_native_password BY '123456' ;
flush privileges ;

六、从机配制

登录MySQL从机
CHANGE MASTER TO MASTER_HOST='192.168.1.153' ,MASTER_USER='mxslave' ,MASTER_PASSWORD='meixi123456' ,MASTER_LOG_FILE='meixi-bin.000001' ,MASTER_LOG_POS=592;

CHANGE  MASTER TO MASTER_HOST='192.168.1.153' ,MASTER_USER='mxslave' ,MASTER_PASSWORD='meixi123456' ,MASTER_LOG_FILE='meixi-bin.000001' ,MASTER_LOG_POS=592;

如果之前有执行过就不需要加用户名密码了。如下命令

CHANGE MASTER TO MASTER_LOG_FILE='meixi-bin.000001',MASTER_LOG_POS=154;

然后再执行
start slave

START SLAVE;

如果之前开过从机会再次执行会报错的。要先停止后再执行


image.png
STOP SLAVE

如果还报错
执行reset slave;

reset slave;

七、查看从机状态
show slave status;

SHOW SLAVE STATUS\G;
image.png

八、找错误

确保这两个参数都是YES就表示成功,这里IO_Running 为No代表不成功。在下面看Error信息看错误日志


image.png

这里错语中报没有找到对应binlog文件。


image.png

发现前面命令中多了一个空格。纠正后 reset slave后正常。
image.png

你可能感兴趣的:(十一、mysql主从)