mysql主从复制

环境
windows: mysql 8.015

centos7:mysql 5.7

一、关闭防火墙

linux :systemctl stop firewalld

windows: 从windows安全中心关闭即可
1149742938

二、修改主机配置文件

1、打开windows服务,找到mysql服务生效的配置文件的位置

2006059029

2、修改配置文件

server-id=1 #服务器 id  主和从库不能就行,随便输入
log-bin=G:/MySQL/mysql/logbin/mysql-bin #二进制文件存放路径
binlog-do-db=dbtest #需要同步的数据库
binlog-ignore-db=mysql #不需要同步的数据库

3、重启mysql服务

4、创建用户、赋予权限

#创建用户
CREATE USER 'slavetest'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
#赋予权限
GRANT REPLICATION SLAVE ON *.* TO 'slavetest'@'%'; 
#生效
flush privileges 

5、查看master状态

show master status;

1982749194

三、修改从机配置文件

1、打开配置文件,配置server-id

vim /etc/my.cnf
#在配置文件里面添加
server-id=2

2、进入mysql

#停止slave
stop slave;
#重置master
reset slave;
#设置slave
change master to master_host='192.168.109.1',#主机ip
master_user='slavetest',#用户名
master_password='123456',#密码
master_log_file='mysql-bin.000002',#show master status 中的File内容
master_log_pos=155;#show master status 中的Position内容
#启动slave
start slave;
#查看状态
show slave status\G#不要加';',加';'会出现ERROR:No query specified

3、查看从机状态

#当下面两个参数都为Yes时,主从复制就搭好了
Slave_IO_Running: Yes
Slave_SQL_Running: Yes

四、出现的错误

1、Slave_IO_Running:connectioning

首先查看日志文件cat /var/log/mysqld.log,出现错误Error_code: 2003,使用perror命令查看错误码信息,结果为ILLegal error code: 2003

原因:发现主机防火墙并没有关闭

解决:将防火墙关闭即可

2、主从复制搭建成功,但是主机创建数据库,但从机没有建立

查看日志文件,出现错误Last_Errno: 22Last_Error: Error 'Character set '#255' is not a compiled character ,继续查看错误码的信息,出现 OS error code 22: Invalid argument

原因:低版本的mysql数据库没有高版本数据库的字符编码

解决:

#修改配置文件:mysql.ini
[client]下添加
default_character_set = utf8
[mysql]下添加
default_character_set = utf8
[mysqld]下添加
character_set_server = utf8
#查看是否修改成功的方法:进入mysql,使用命令查看
show variables like “%char%”;

mysql低版本和高版本复制对应关系:低版本向高版本复制可以,但高版本向低版本复制会出现字符不匹配错误

789368410

posted @ 2020-05-11 10:18  神无二一  阅读(229)  评论(0编辑  收藏  举报