mariadb的主从同步和读写分离
Posted 智慧大数据
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mariadb的主从同步和读写分离相关的知识,希望对你有一定的参考价值。
mariadb的主从同步和读写分离
前言
MariaDB数据库管理系统是mysql的一个分支,主要由开源社区在维护,采用GPL授权许可 MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。前提两台服务器,今天就要用它来搭建多服务器的主从同步和读写分离,
两台服务的环境是:
192.168.47.128 centos7 mariadb10.3
192.168.47.129 centos6.5 mariadb10.3
下面开始搭建:
mariadb安装
1、centos7下面的安装我以前有很多教程,暂时略过。所以说一下centos6.5的
添加yum源,并安装
vim /etc/yum.repos.d/Mariadb.repo
[mariadb]
name = MariaDB
baseurl = http://mirrors.aliyun.com/mariadb/yum/10.3/centos6-amd64/
gpgkey = http://mirrors.aliyun.com/mariadb/yum/RPM-GPG-KEY-MariaDB
gpgcheck = 0
yum -y install MariaDB-server MariaDB-client
Q1:
#You could try using --skip-broken to work around the problem
#You could try running: rpm -Va --nofiles --nodigest
办法:
在本地源的配置文件,配置
gpgcheck = 0
再试试更新源
rpm -Va --nofiles --nodigest
yum clean all
yum repolist all
2、正常运行
service mysql start
chkconfig mysqld on
# 1、关闭和禁用防火墙
service iptables stop
chkconfig iptables off
主库配置
3、主数据库的基础配置
vim /etc/my.cnf.d/server.cnf
[mysqld]
init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
server-id=1 #主数据的ID
log-bin=master-bin #日志路径,作用是从数据库是根据这个日志来复制主数据库的数据
4、主数据库的用户配置
use mysql;
grant replication slave on *.* to slaveuser@'192.168.47.129' identified by 'slaveuser';
flush privileges;
5、重启一下主数据库
systemctl restart mariadb.service
从库配置
6、从数据库为只读状态
vim /etc/my.cnf.d/server.cnf
[mysqld]
server-id=2 #这个id必须不能和主数据库相同
read-only=on #设置该数据库是只读状态
relay-log=relay-bin #日志
7、从数据库添加用户
grant usage on *.* to 'slaveuser'@'%' identified by '123456' with grant option;
grant all privileges on *.* to 'slaveuser'@'%' identified by '123456';
# grant select,delete,update,create,drop on *.* to slaveuser@"%" identified by "1234"; 或者这句
flush privileges;
重启一下服务
service mysql restart
8、在主库mariadb里查询master状态
show master status;
9、进入从服务器的数据库:master_host需改为自己的主服务器地址
change master to master_host='192.168.47.128',master_user='root',master_password='123456',master_log_file='master-bin.000003',master_log_pos=329;
10、启动slave同步(在数据库中)
START SLAVE;
show slave status\G #查看slave同步的状态
这两项属性全是yes就说明我们设置成功了,快去数据库里面测试一下我们配置的内容吧。
缺点:本数据同步方案还存在一定的弊端,当短时间、数据量集中、数据量变大的时候,还会存在数据同步延迟的问题,所以我们应该合理使用数据同步,当然后期我们会更新多进程数据同步方案来解决此问题。
意义:当我们面临百万、千万、亿级别的并发量的时候,我们的项目肯定不会仅仅在一台服务器,我们需要多台服务器,多台服务器的数据同步更新就显得尤为重要了。
以上是关于mariadb的主从同步和读写分离的主要内容,如果未能解决你的问题,请参考以下文章