安装
解压zip包,我这里解压了三个文件目录并重命名了,一个master(3307),两个slave(3308,3309)
主数据库3307,配置文件my.ini:
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8mb4
[mysqld]
#设置3376端口
port=3307
#开启binlog日志
log-bin=binlog
server-id=1
#需要同步的库
binlog-do-db=test
#不需要同步的库
binlog-ignore-db=mysql
#设置二进制日志自动删除/过期的天数,避免占用磁盘空间。默认值为0,表示不自动删除。
expire_logs_days=7
#跳过主从复制中遇到的所有错误或指定类型的错误,避免slave端复制中断。
#如:1062错误是指一些主键重复,1032错误是因为主从数据库数据不一致
slave_skip_errors=all
# 设置mysql的安装目录
basedir=E:\\mysql8\\mysql-8.0.26-3307
# 设置mysql数据库的数据的存放目录
datadir=E:\\mysql8\\mysql-8.0.26-3307\\data
# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为UTF8
character-set-server=utf8mb4
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
从数据库3308、3309,配置文件my.ini(端口和server-id不同):
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8mb4
[mysqld]
#设置3309端口
port=3309
server-id=2
# 设置mysql的安装目录
basedir=E:\\mysql8\\mysql-8.0.26-3309
# 设置mysql数据库的数据的存放目录
datadir=E:\\mysql8\\mysql-8.0.26-3309\\data
# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为UTF8
character-set-server=utf8mb4
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
初始化:
mysqld --initialize --console
初始化完成会生成data数据目录和root账户的一个临时密码:
安装mysql服务:
mysqld --install mysql87
mysqld --install mysql88
mysqld --install mysql89
安装成功提示:
启动mysql服务:
net start mysql87
net start mysql88
net start mysql89
登陆并修改密码:
alter user 'root'@'localhost' identified with mysql_native_password by 'password';
flush privileges;
从数据库设置
登陆主数据库创建一个用户用于从数据库复制(localhost从库ip):
create user 'rep'@'localhost' identified with mysql_native_password by 'password';
grant replication slave on *.* to 'rep'@'localhost';
查看master状态(配置从库需要):
新开cmd窗口登陆从库进行配置(host主数据库ip,user、password主数据库进行binglog日志传输的账号密码,port主数据库端口,log_file参考上面master状态的File,log_pos参考Position):
启动从库复制并查看状态(主要是看IO和SQL线程是否正常运行):
start slave;
show slave status;
注意:主从库创建相同的数据库用于复制