MySQL主从模式
安装 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_id,log_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.
my.cnf
server_id=1、log_bin=master_log、user=mysql(MySQL的用户组和用户)、添加身份验证,也可以不添加。
重启 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';
查看用户和master信息
## 选择数据库
use mysql;
## 查看用户
select host,user from user;
## 查看 Master 信息
show master status;
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;
上图中没有错误说明从库中没有其他问题,如果出现了错误,一般是身份验证出现问题了,或者是权限问题。下面出现的问题是身份验证的问题。修改用户的身份验证功能即可
修改身份验证功能为 mysql_native_password by,然后在重新配置从库【slave】信息即可
alter user 'slave'@'192.168.70.152' identified with mysql_native_password by '123456';
- 点赞
- 收藏
- 关注作者
评论(0)