windows mysql8.0主从配置

windows mysql8.0主从配置

一、安装两个MySQL并配置
1. 主库配置my.ini,我的主库是安装版
[mysqld]
# 设置mysql的安装目录
basedir=D:\\soft\\mysql-5.7.39
# 设置mysql数据库的存放目录
datadir=D:\\soft\\mysql-5.7.39\\data
#设置3306端口
port=3306 
#主服务器唯一ID
server-id=1
#启用二进制日志
log-bin=txmysql-bin
#设置不要复制的数据库(可设置多个)
binlog-ignore-db=mysql
 
#设置需要复制的数据库
binlog-do-db=mydb1
#设置binlog格式,MIXED,ROW,STATEMENT
binlog_format=STATEMENT
 
sql_mode="STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION"

8.0版本的my.ini文件地址是在ProgramData下:C:\ProgramData\MySQL\MySQL Server 8.0
安装的时候,这个配置文件的内容大部分都是存在的,我只加了不要复制的数据库;由于我的数据库是8.0之后的版本,所以sql_mode对应的值STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION,如果有no_auto_create_user启动的时候会报错,就是安装后,这个对应的值不需要去改动

2. 启动主库服务
3. 安装第二个MySQL服务,这个我用的是解压版8.0.25

在mysql文件夹下新建配置文件my.ini,内容如下:
windows mysql8.0主从配置_第1张图片
内容如下:

[mysqld]
# 设置mysql的安装目录
basedir=D:\\HuanJing\\Mysql\\mysql-8.0.25-winx64
# 设置mysql数据库的存放目录
datadir=D:\\HuanJing\\Mysql\\mysql-8.0.25-winx64\\data
#设置3307端口
port=3307
#从服务器唯一ID
server-id=2
#启用中继日志
relay-log=mysql-relay=
sql_mode="STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION"

注意一下sql_mode的值,8.0的版本不需要设置no_auto_create_user,否则启动会失败

4. 以管理员的身份安装服务

windows mysql8.0主从配置_第2张图片
注意一开始使用mysqld.exe

5. 启动服务

可以用命令net start mysql,或者用服务启动

二、主从复制配置
1. 用navicat连接上主数据库进行操作

创建账户:CREATE USER 'slave'@'从库的ip地址' IDENTIFIED BY 'tion@root123';
授权账户:GRANT REPLICATION SLAVE ON *.* TO 'slave'@'从库的ip地址';
刷新权限:FLUSH PRIVILEGES;
主库状态:show master status;
windows mysql8.0主从配置_第3张图片

2. 从库指向master地址,从库的配置

CHANGE MASTER TO master_host='ip地址',master_user='slave',master_password='tion@root123',master_log_file='GT-001-bin.000013',master_log_pos=155, get_master_public_key=1;

3. 执行命令启动:start slave
4. 查看从库状态:show slave status

windows mysql8.0主从配置_第4张图片

5. 问题

可以查询下面的两个error看下具体错误,或者查看data下的错误日志
windows mysql8.0主从配置_第5张图片

6. 可以在主库新增、修改和删除,会发现从库跟着变化了。此时,主从复制配置完成。

你可能感兴趣的:(mysql,windows,MySQL,主从复制)