文章目录
mysql 主从复制搭建
- mysql版本 8.0.33
- source地址(master) 192.168.59.86
- replica地址(slave) 192.168.59.87
1 下载安装
https://blog.csdn.net/qq_43798066/article/details/131032496?spm=1001.2014.3001.5502
2 主库配置
2.1 查看主库BINLOG状态,最新版本默认已经开启
mysql> show variables like '%log_bin%';
mysql> show master status;
2.2 设置server-id,打开GTID
2.2.1 编辑配置文件
# 编辑配置文件
vim /etc/my.cnf
# 在my.cnf中添加以下内容
# 添加
[mysqld]
# 注意每台服务器要不一样
server-id=1
# 开启GTID
gtid_mode=on
enforce-gtid-consistency=true
# 使用“mysql_native_password”密码插件认证(加密方式),使用新插件从库无法登录,有兼容问题
default_authentication_plugin=mysql_native_password
# 重启
systemctl restart mysqld
2.2.2 查看是否生效
# 相关命令
SELECT @@GLOBAL.GTID_MODE;
SELECT @@GLOBAL.ENFORCE_GTID_CONSISTENCY;
SHOW VARIABLES LIKE 'server_id';
SHOW VARIABLES LIKE 'gtid_mode';
SHOW VARIABLES LIKE 'enforce_gtid_consistency';
SHOW VARIABLES LIKE 'log_bin';
SHOW VARIABLES LIKE 'binlog_format';
2.3 创建用于复制的用户
2.3.1 创建用户
# 密码插件使用老插件,新插件有兼容问题,从库连接时认证会失败
create user repl@'192.168.59.%' identified with mysql_native_password by 'Sbt217f285d8888';
2.3.2 授权
# 复制权限(只需要SLAVE权限即可,这里多授予了CLiENT权限)
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'192.168.59.%';
GRANT REPLICATION CLiENT ON *.* TO 'repl'@'192.168.59.%';
2.3.3 查看
select user, host, Repl_slave_priv, Repl_client_priv from mysql.user;
2.4 查看主库状态
show master status
3 从库配置
3.1 连接主库
# mysql8中将master、slave更名为source、replica
CHANGE REPLICATION SOURCE TO SOURCE_HOST='192.168.59.86',SOURCE_USER='repl',SOURCE_PASSWORD='123456',SOURCE_LOG_FILE='binlog.000011',SOURCE_LOG_POS=197;
# SOURCE_HOST 主库地址
# SOURCE_USER 登录主库的用户(前面创建了repl用户)
# SOURCE_LOG_FILE 日志文件名(填2.4 show master status命令的输出中的 File)
# SOURCE_LOG_POS 位置(填2.4 show master status命令的输出中的 Position)
3.2 开启同步
# 开始同步
start replica;
# 停止
stop replica;
3.3 查看复制状态
# 查看复制状态
show replica status\G;
这两个位置显示Yes即正常
4 测试
4.1 创建数据库
4.1.1 主库中创建database
create database 'xxx';
4.1.2 从库中查看是否同步
show databases;
4.2其他测试
创建表,insert、update、delete
…
… 此处省略 999+ 字😈