准备三台虚拟机:mycat(Mycat中间件服务节点)、db1(mariadb数据库集群主节点)、db2(mariadb集群从节点)
基础环境配置
#vi /etc/hosts
添加以下配置
172.16.51.6 mycat
172.16.51.18 db1
172.16.51.30 db2
三台虚拟机分别上传gpmall-repo文件至/opt/下,并设置本地yum源
#mv /etc/yum.repo.d/* /media
#mkdir /opt/centos
#mount /dev/cdrom /opt/cenos
#vi /etc/yum.repo.d/local.repo
[centos]
name=centos
baseurl=file:///opt/centos
gpgcheck=0
enabled=1
[mariadb]
name=mariadb
baseurl=file:///opt/gpmall-repo
gpgcheck=0
enabled=1
安装jdk环境
#yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel
#java -version
关闭防火墙(三个节点)
#iptables -F
#iptables -X
#iptables -Z
部署mariadb主从数据库集群服务
在db1、db2节点安装mariadb服务、启动服务、设置开机自启
#yum install -y mariadb mariadb-server
#systemctl start mariadb
#systemctl enable mariadb
在db1、db2节点初始化mariadb数据库,设置用户root密码为123456
#mysql_secure_installstion
(回车、y、123456、123456、y、n、y、y)
在db1节点my.cnf配置文件开头中增添以下内容
#vi /etc/my.cnf
[mysqld]
log_bin = mysql-bin
binlog_ignore_db = mysql
server_id = 18
#systemctl restart mariadb (重启mariadb服务)
开放主节点数据库权限
在db1节点登录数据库
#mysql -uroot -p123456
>grant all privilcation slave on *.* to root@’%’ identified by “123456”;
在db1主节点数据库创建user用户使其可以在db2从节点连接,并赋予从节点同步数据库的权限
>grant replication slave on *.* to ‘user’@’db2’ identified by ‘123456’;
配置从节点db2同步主节点db1
在db2从节点登录myariadb数据库,配置从节点连接主节点的连接信息。Master_host为主节点db1,master_user为上面创建的用户user
#mysql -uroot -p123456
>change master to master_host=’db1’,master_user=’user’,master_password=’123456’;
>start slave;
>show slave status\G;
//Slave_IO_Running和Slave_SQL_Running的状态都为YES
验证主从数据库的同步功能
在db1数据库中创建库test,并在库test中创建表company,插入表数据。
>create database test;
>use test;
>create table company(id int not null primary key,name varchar(50),addr varchar(255));
>insert into company values(1,”facebook”,”usa”);
>select * from company;
部署Mycat读写分离中间件服务
将Mycat服务的软件包上传到/root目录下,并将软件包及液压到/use/local目录中
# tar -zxvf Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz -C /usr/local/
#chown -R 777 /usr/local/mycat/ (赋予mycat目录权限)
在/etc/profile系统变量文件中添加mycat服务的系统变量,并生效变量
#echo export MYCAT_HOME=/usr/local/mycat/ >> /etc/profile
#source /etc/profile
编辑mycat的逻辑库配置文件
#vi /usr/local/mycat/conf/schema.xml
修改schema.xml的用户权限
#chown root:root /usr/local/mycat/conf/schema.xml
编辑mycat的访问用户
修改/usr/local/mycat/conf/目录下的server.xml文件,修改root用户的访问密码与数据库,密码设置为123456,访问Mycat的逻辑库为USERDB
#vi /usr/local/mycat/conf/server.xml
在文件最后部分
删除以下几行
启动mycat服务
# /bin/bash /usr/local/mycat/bin/mycat start
#netstat -ntpl
//若有8066和9066端口,则表示mycat服务开启成功
验证数据库集群服务读写分离功能
用mycat服务查询数据库信息
首先在mycat虚拟机上使用yum安装mariadb服务
#yum install -y MairaDB-client\
在Mycat虚拟机上使用mysql命令查看Mycat服务的逻辑库USERDB,因为Mycat的逻辑库USERDB对应数据库test(在部署主从数据库时已安装),所以可以查看库中已经创建的表company
#mysql -h127.0.0.1 -P8066 -uroot -p123456
#show databases;
#use USERDB
#show tables;
# select * from company;
用mycat服务添加表数据
在Mycat虚拟机上使用mysql命令对表company添加一条数据(2,"basketball","usa"),添加完毕后查看表信息
#insert into company values(2,"bastetball","usa");
# select * from company;
验证Mycat服务对数据库读写操作分离
在Mycat虚拟机节点使用mysql命令,通过9066端口查询对数据库读写操作的分离信息。可以看到所有的写入操作WRITE_LOAD数都在db1主数据库节点上,所有的读取操作READ_LOAD数都在db2主数据库节点上。
#mysql -h127.0.0.1 -P9066 -uroot -p123456 -e 'show @@datasource;'