一、1.首先找到mysql的安装目录
复制一份mysql,我这里命名为mysql-s1
2.找到my.ini文件,my.ini不一定在你的安装目录里,我的在c盘的programdata里,你可以自己找一下,找不到可以百度一下,
将你的my.ini所在的文件夹再复制一份
3.修改my.ini
主库配置:
[mysqld]
#
开启日志
log-bin
=
mysql-bin
#
设置服务
id
,主从不能一致
server-id
=
1
#
设置需要同步的数据库
binlog-do-db
=
store_db
binlog-do-db
=
product_db_1
binlog-do-db
=
product_db_2
#
屏蔽系统库同步
binlog-ignore-db
=
mysql
binlog-ignore-db
=
information_schema
binlog-ignore-db
=
performance_schema
从库配置
[mysqld]
#
设置
3307
端口
port
=
3307
#
设置
mysql
数据库的数据的存放目录
(
该目录不一定在
mysql
安装目录下
)
datadir
=
D
:
\mysql-5.7.25-s1\data
#
开启日志
log-bin
=
mysql-bin
#
设置服务
id
,主从不能一样
server-id
=
2
#
设置需要同步的数据库
replicate_wild_do_table
=
store_db.%
replicate_wild_do_table
=
product_db_1.%
replicate_wild_do_table
=
product_db_2.%
#
屏蔽系统库同步
replicate_wild_ignore_table
=
mysql.%
replicate_wild_ignore_table
=
information_schema.%
replicate_wild_ignore_table
=
performance_schema.%
注意:my.ini文件里有些地方需要修改,【client】里的port,【mysqld】里的port;另外还有datadir等,自己可以浏览看一下哪些地方需要修改
4.
然后在命令行窗口
(
以管理员身份运行
)
中将从库安装为
windows
服务,注意配置文件位置:
D:\mysql-5.7.25-s1\b
in
> mysqld install mysqls1
--defaults-file
=
"D:\mysql-5.7.25-s1\my.ini"
先进入到你的从库的bin目录再执行命令
由于从库是从主库复制过来的,因此里面的数据完全一致,可使用原来的账号、密码登录
,
现在重启主
库和从库。
请注意,从库数据
(data)
目录下有个文件
auto.cnf
,也要与主库不一样,建议直接删除掉,重启服务后
将会重新生成。
二、授权主从专用账号
#
切换至主库
bin
目录,登录主库
mysql
-h
localhost
-uroot -p123
#
授权主从复制专用账号
GRANT REPLICATION SLAVE ON *.* TO
'db_sync'
@
'%'
IDENTIFIED BY
'db_sync'
;
#
刷新权限
FLUSH PRIVILEGES;
#
确认位点 记录下文件名以及位点
show master status;
![](https://img-blog.csdnimg.cn/6a4f371b972d44b08b98b6768631ba6d.png)
三、
设置从库向主库同步数据、并检查链路
#
切换至从库
bin
目录,登录从库
mysql
-h
localhost
-P3307 -uroot -p123
#
修改从库指向到主库,使用上一步记录的文件名以及位点
CHANGE MASTER TO
master_host
=
'localhost'
,
master_user
=
'db_sync'
,
master_password
=
'db_sync'
,
master_log_file
=
'mysql-bin.000001'
,
master_log_pos
=
592
;
#
执行该命令前,一定要重启主库和从库服务
show slave status\G
#
执行该命令后,确认
Slave_IO_Runing
以及
Slave_SQL_Runing
两个状态位是否为
“Yes”
,如果不为 Yes,请检查
error_log
,然后排查相关异常。
![](https://img-blog.csdnimg.cn/5f7f550c78c0471785e08c4c976f79ab.png)
#
注意:如果之前此从库已有主库指向,需要先执行以下命令清空
STOP SLAVE FOR CHANNEL
‘’
;
reset slave all;
总结:如果发现
Slave_IO_Runing为run可以先去百度一下常见错误,我的错误是查了错误日志Authentication plugin 'caching_sha2_password' reported error: Authentication requires secure connection.
ALTER USER 'repl'@'%' IDENTIFIED WITH mysql_native_password BY 'root';
用这个命令修改一下然后就可以了