MySQL 主从配置 版本5.7

MySQL 主从配置 版本5.7

官方文档地址:https://dev.mysql.com/doc/refman/5.7/en/replication-options-replica.html

主从配置:

配置的是My.ini文件

1.先进安装目录中找,例如默认安装路径:C:\Program Files\MySQL\MySQL Server 5.7。如果其中只有MyDefault.ini,再进C:\ProgramData\MySQL\MySQL Server 5.7,其中progranData是隐藏的文件夹,需要自己配置查看隐藏的文件夹

2.假如不是默认安装路径,并且已经遗忘路径,可以查看服务,寻找路径

配置主数据库

1.主服务器配置:复制以下内容进my.ini即可

#========主从复制关键配置======================
#主库和从库需要不一致
server_id=2
#二进制文件存放路径,存放在根目录data,文件名自定义
log-bin=mysql-bin
#需要复制的库,多个库用逗号隔开,如果此项不配置所有主库都参与复制
binlog-do-db=dbA
#不需要复制的库
#binlog-ignore-db=mysql 
#========主从复制关键配置======================

注意事项:以上内容需要放在my.ini中[mysqld]下,否则无效

配置从数据库

1.配置my.ini

配置server_id 与主库不一致即可 范围(1~2^32-1)

选择配置:

#========主从复制关键配置======================
#主库和从库需要不一致
server_id=3
#需要复制的库,多个库用逗号隔开,如果此项不配置所有主库都参与复制
replicate-do-db=dbA
#不需要复制的库
#replicate-ignore-db=mysql 
#当主库与从库名称不一致时:
replicate-rewrite-db =主库名称 -> 从库名称
#当只需要同步部分库时:
#同步指定表,多张表用逗号分隔无效,
#解决:多次使用该命令,指定多张表。
#例如:
#replicate-do-table=xxx.tableA
#replicate-do-table=xxx.tableB
#其他命令需要指定多个数据库或者指定多张表的,都这样操作
replicate-do-table=从库数据库名称.表名称
#与上面的功能一致,但是可以加通配符
replicate-wild-do-table=从库数据库名称.通配符
#========主从复制关键配置======================

2.Win+R 输入CMD 进入命令行,cd 进入数据库C:\Program Files\MySQL\MySQL Server 5.7\bin(这是默认安装路径)安装路径下。
登录命令:mysql –u username –p
出现ENTERPASS,输入密码。

输入命令(命令也可以在navicat 【数据库管理工具】 中直接输入):

change master to 
master_host='对应的主库IP',
master_user='登录主库的用户名',
master_password='主库的用户密码',
master_log_file='注①',
master_log_pos=注②

假如端口不是默认端口3306,需要在继续添加以下命令:

	master_port = 端口号

假如一个mysql服务有多个从库配置,需要再继续添加以下命令:

	FOR CHANNEL '通道名称'

可以在主库的navicat中的查询界面输入show master status;

结果列file,填入注①,列position填入注②

3.输入:start slave;#启动从库服务
配置完成后,重启mysql服务

4.输入:show slave status;#查看服务状态

如果SLAVE_IO_STATE为Waiting for master to send event,配置成功。

如果配置失败,请自行查找原因

例如:

SLAVE_SQL_RUNNING:NO 一般是配置成功了,但是执行SQL出错了,在查询出的结果中找到Last_IO_Error查看错误描述,解决它。

然后依次输入以下命令

#停止从库服务
stop slave;                    
#忽略一条SQL语句                                  
SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
#启动主库服务            
start slave;                                                      
show slave status;

SLAVE_IO_RUNNING:NO 一般是配置出错,仔细检查

注:如果需要配置为互为主从,在当前的从服务器上添加log_bin,添加需要同步的数据库,
在当前的主服务器上,执行一次配置从服务器的操作

posted @ 2020-10-29 16:58  花落丶流年  阅读(255)  评论(0编辑  收藏  举报