centos+mariadb 读写分离实现—mysql主从备份
主从备份:将一个数据库当作主数据库,另一个数据库作为从数据库,在主数据库中进行操作,从数据库进行记录,保证两个数据库数据一致
读写分离:和主从备份原理一致,主数据库负责写入(数据保存),从数据库负责读操作(数据展示),可以一主一从,也可以一主多从,从而降低数据库同时处理读写的压力。
1.两台服务器地址
[root@localhost hys]# ifconfig
- master(主):192.168.0.105
- slave(从):192.168.0.104
2.安装mariadb数据库
mariadb是免费的mysql,操作一致,两台服务器都需要安装mariadb
- 下载命令
[root@localhost hys]# yum install mariadb-server -y
- 启动mariadb服务
[root@localhost hys]# systemctl start mariadb
- mariadb现在处于调试模式,不需要密码也能登录,所以要把两台服务器的mariadb设置成工作模式
[root@localhost hys]# mysql_secure_installation
- 设置密码
- 移除匿名用户
- 不允许root用户远程登录
- 确定删除test数据库
- 确认重载授权表
3.master端进行授权操作
- 进行授权
grant replication slave on *.* to "root"@"%" identified by "123" with grant option;
- 刷新授权表
flush privileges;
- 创建要备份的数据库和表
- 导出数据库
mysqldump -h localhost -u root -p123456 demo > demo.sql
- 通过scp命令将demo.sql发送到slave服务器上
scp demo.sql [email protected]:/opt/
4.slave端操作
- 创建要备份的demo库
- 导入master传过来的数据库
- 查看
5.开始备份(重点来了)
- 关闭两台服务器的防火墙和selinux
systemctl stop firewalld
setenforce 0
- 修改master端配置文件
- 保存退出 重启mariadb服务
- slave端修改配置文件(修改后同master一样重启服务)
- 查看master端状态
- 在slave端进行编写备份命令
change master to master_host="192.168.0.105",master_user="root",master_password="123",master_log_file="mysql-bin?.000002",master_log_pos=245;
- 开始备份(slave端)
- 查看备份状态
注意:如果这里出现no或者connecting 多半是slave备份命令出了错 ,或者停止slave ,再启动slave
6.测试备份
-
slave端查看表中数据
-
在master中插入数据
-
在slave端查询
大功告成 mariadb读写分离配置完成