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 的信息是否正确