1.两台机子分别安装mysql,其中步骤选项
1.1 安装mysql
第一个选项包含了一些MySQL其他组件,
如果只安装MySQL数据库,选择第二项Server only就行。
如果需要修改安装位置选择Custom。
不修改默认位置的话服务器可以直接选第二项Server only
1.2 配置mysql
next,开始配置mysql设置。
默认即可,next。
没什么必要,默认配置即可,next,有其它需求一般都是改一下端口就完事。
没什么必要还是选择以前的加密方式把,刚出来8.0,第三方客户端基本都不支持这种加密方式,但自带的命令行支持,选择Use Legacy Authentication Method,然后next,下一步
输入root用户的密码,next。
默认即可,next。
点击execute,写入配置和添加windows服务。
点finish完成安装。 接着点next和finish即可完成。
2.主服务器操作
2.1打开主服务器的my.ini
添加binlog相关配置
# Binary Logging.
log-bin="master-bin"
log-bin-index="master-bin.index"
#包括的库
binlog_do_db=test
#忽略的库
binlog-ignore-db=mysql
binlog-ignore-db=information_schema
binlog-ignore-db=sys
binlog-ignore-db=performance_schema
# Server Id.
server-id=1
#步进值auto_imcrement。一般有n台主MySQL就填n
auto_increment_increment=2
#起始值。一般填第n台主MySQL。此时为第一台主MySQL
auto_increment_offset=1
2.2进入mysql命令行
直接在cmd命令行
mysql -P3306 -uroot -p
navicat中打开数据库连接后按F6,进入命令行界面
2.3创建用于同步的用户(mysql8之后需要先创建用户,之后才能授权)
#创建用户
CREATE USER 'sync'@'%' IDENTIFIED BY 'sync123';
#修改密码加密方式
alter user 'sync'@'%' identified with mysql_native_password by 'sync123';
#授权
GRANT REPLICATION SLAVE ON *.* TO 'sync'@'%' WITH GRANT OPTION;
#刷新权限
FLUSH PRIVILEGES;
2.4以上完成后在主服务器上执行以下语句,查询master的状态
show master status;
可以看到以上结果,这儿只需要看 File 和 Position,其它的两个分别是白名单和黑名单,意思为同步哪几个数据库和不同步哪几个数据库,可自行根据需求进行设置。记录了前两个字段后,在从库上执行以下语句:
CHANGE MASTER TO
MASTER_HOST='192.168.216.128',
MASTER_USER='sync',
MASTER_PASSWORD='sync123',
MASTER_LOG_FILE='mysql-bin.000020',
MASTER_LOG_POS=1441;
3.从服务器操作
3.1执行完毕后,在从库上继续执行如下语句:
# 开启同步,同时启动I/O 线程和SQL线程
start slave ;
# \G是cmd命令行
show slave status\G;
查看从服务器的状态,如果状态中的用红线标出来两个参数的值都为YES,那证明配置已经成功
如果失败,可以从以下几个方面去排查问题:
1.首先试一下主从服务器相互之间是否 PING 得通
3.server-id 是否配成一致(如果Slave_IO_Running为No,其中一个可能问题是server-id重复)
4.bin-log 的信息是否正确