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=STATEMENTsql_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,内容如下:
内容如下:
[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. 以管理员的身份安装服务
注意一开始使用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;
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
5. 问题
可以查询下面的两个error看下具体错误,或者查看data下的错误日志