MySQL主从模式

举报
阿弥陀佛001 发表于 2021/09/06 10:59:25 2021/09/06
【摘要】 安装 MySQL(这里使用的是MySQL8.0)。关闭防火墙或打开 3306 端口主库:192.168.10.151从库:192.168.10.152 1、主库[mater]配置 修改Master配置文件## 路径 /etc/my.cnfvim /etc/my.cnf在 my.cnf 配置文件中添加 server_id,log_bin,其中 server_id 的值是数字并且随便起(一般设置...

安装 MySQL(这里使用的是MySQL8.0)。关闭防火墙或打开 3306 端口

主库:192.168.10.151

从库:192.168.10.152

1、主库[mater]配置

修改Master配置文件
## 路径 /etc/my.cnf
vim /etc/my.cnf

在 my.cnf 配置文件中添加 server_idlog_bin,其中 server_id 的值是数字并且随便起(一般设置为1),log_bin 的值也随便起,我设置的是 master_log,变量的值就是日志文件名称,是日志文件名称的主体,MySQL数据库自动添加文件名后缀和文件类型。

注意:MySQL8.0 版本的身份验证使用的是 sh2 插件,不需要安装和卸载,服务器自带,在创建用户时指定验证方式就可以,但是在搭建主从模式时容易出现问题,如下图:Last_IO_Error: error connecting to master ‘slave@192.168.70.148:3306’ - retry-time: 60 retries: 1 message: Authentication plugin ‘caching_sha2_password’ reported error: Authentication requires secure connection.

image-20210906095233470

my.cnf

server_id=1、log_bin=master_log、user=mysql(MySQL的用户组和用户)、添加身份验证,也可以不添加。

image-20210906100651720

重启 MySQL并配置 MySQL master
## 重启MySQL
service mysqld restart

访问MySQL

mysql -uroot -p123456

创建用户时指定身份验证,否则后续步骤会出错,在MySQL8.0版中没有了隐式创建,需要先创建在授权

## 创建用户
create user 'slave'@'192.168.10.152' identified with caching_sha2_password by '123456';
## 授权
grant all privileges on *.* to 'slave'@'192.168.10.152' with grant option;
## 刷新
flush privileges;

192.168.10.152 是 MySQL 从库的 ip 地址,使用 caching_sha2_password 身份验证功能,也可以使用 mysql_native_password 身份验证,密码是 123456。

更改身份验证为 mysql_native_password

alter user 'slave'@'192.168.70.152' identified with mysql_native_password by '123456';

image-20210906102546847

查看用户和master信息
## 选择数据库
use mysql;
## 查看用户
select host,user from user;
## 查看 Master 信息
show master status;

image-20210906104109204

2、从库[slave]配置

修改 slave 配置

路径:/etc/my.cnf,使用vim /etc/my.cnf 命令进入到my.cnf 文件,在里面添加 server_id=2 ,这里的server_id 的值要大于主库中server_id 的值,需要添加的是:server_id=2、身份验证、user=mysql。

my.cnf
重启 MySQL 服务
service mysqld restart

登录MySQL

mysql -uroot -p123456
配置从库【slave】信息

需要修改的数据是依据 Master 信息修改的. ip 是 Master 所在物理机 IP. 用户名和密码是
Master 提供的 Slave 访问用户名和密码. 日志文件是在 Master 中查看的主库信息提供的.在
Master 中使用命令 show master status 查看日志文件名称.

## 停止 slave
stop slave
## 配置
change master to master_host='192.168.70.151',master_user='slave',master_password='123456',master_log_file='master_log.000001';

192.168.70.151:主库的 ip 地址

slave:在主库中添加的 user,master_log.000001,主库 show master status;显示的文件

启动 slave 功能
start slave;
## 查看 slave 的信息
show slave status;

image-20210906104449994

上图中没有错误说明从库中没有其他问题,如果出现了错误,一般是身份验证出现问题了,或者是权限问题。下面出现的问题是身份验证的问题。修改用户的身份验证功能即可

image-20210906095233470

修改身份验证功能为 mysql_native_password by,然后在重新配置从库【slave】信息即可

alter user 'slave'@'192.168.70.152' identified with mysql_native_password by '123456';
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。