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,添加需要同步的数据库,
在当前的主服务器上,执行一次配置从服务器的操作