MySQL的主从与读写分离

1.环境准备(同时在两台虚拟机上操作)

关闭防火墙

systemctl  stop firewalld
setenforce   0 

下载数据库

yum -y install mariadb mariadb-server

开启数据库

systemctl start mariadb

说明

主数据库 192.168.233.162
从数据库 192.168.233.163

配置主数据库

1.用vi 打开my.cnf

vi /etc/my.cnf

2.在[mysqld]标签下面增加以下代码:

server-id=1   #主数据库的id
log-bin=master-bin   #日志路径,作用是从数据库是根据这个日志来复制主数据库的数据的

重启数据库

systemctl restart mariadb

登录mariadb,授权远程用户(slaveuser为用户名和密码 “192.168.233.163”为从服务器的地址,这里需要改成自己服务器的地址)

grant replication slave on *.* to 'slaveuser'@'192.168.233.163' identified by 'slaveuser';

flush privileges;

重启mariadb服务

systemctl restart mariadb.service

配置从数据库

1.用vi打开my.cnf:

vi /etc/my.cnf

2.在[mysqld]标签下面增加以下代码:

server-id=2   #这个id必须不能和主数据库相同
read-only=on  #设置该数据库是只读状态
relay-log=relay-bin  #日志

3.重启mariadb服务

systemctl restart mariadb.service

在主服务器的数据库上查询主服务状态

SHOW MASTER STATUS;

在这里插入图片描述

进入从服务器的数据库:master_host需改为自己的主服务器地址

change master to master_host='192.168.233.162',master_user='slaveuser',master_password='slaveuser', master_log_file='master-bin.000004',master_log_pos=245;

start slave;  #重置slave 不重置有时候会出错
START SLAVE;#启动slave同步(在数据库中)
show slave status\G   在slave服务器上查看slave同步的状态


.查看Slave_IO_Running和Slave_SQL_Running是否都为yes(一定要全部为yes。否则就是你配置错了,再重新配置一遍从数据库)
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_42747175/article/details/83793997