准备
三台虚拟机
| 机器名称 |
|---|
| mysql1 主节点 |
| mysql2 从节点 |
| mycat 节点 |
mysql1和mysql2需要提前进行主从分离操作哦(当然不是硬性要求)。
更换yum源下载所需软件
配置本地yum源
如果没配置过本地yum源,大部分linux使用yum获取的软件都是联网下载的,但是配置本地后,速度快,还无需联网。并且部分yum源的软件版本更高。
!!!!注意 如果习惯vim,请先安装vim再进行如下配置。或者使用vi也可。
mv /etc/yum.repos.d/* /media/ #将yum.repos.d下面的所有文件转移到 media文件夹
vim /etc/yum.repos.d/local.repo #创建并编写local.repo,本地配置文件
#将以下文字复制粘贴进去
[mariadb]
name=mariadb #源名称
baseurl=file:///opt/gpmall-repo #源文件位置
gpgcheck=0 #是否开启gpg验证 0 为关闭
enabled=1 #是否开启 1 为开启
[centos]
name=centos
baseurl=file:///opt/centos
gpgcheck=0
enabled=1
mkdir /opt/centos #创建文件夹,因为上面指定的文件夹咱们还没创建
mount /dev/sr0 /opt/centos #挂载文件
#将yum本地源文件gpmall-repo,根据上面的配置,传输到/opt文件夹下。
#自行准备xftp等软件。
装配完成后输入yum repolist 查看yum源!不是0,基本上就完成了。
安装jdk和mycat
yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel MariaDB-client #下载jdk和所需的文件
java -version #查看jdk版本
将mycat传输到虚拟机中!并且解压
tar -zxf Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz -C /usr/local/
#将mycat解压到/usr/local文件夹下方。
chmod -R 777 /usr/local/mycat #给mycat文件权限
echo export MYCAT_HOME=/usr/local/mycat/ >> /etc/profile #写入配置文件
source /etc/profile #刷新配置文件
配置
在mysql1和mysql2节点输入命令,给予权限。
mysql> grant all privileges on *.* to root@'%' identified by "000000";
#给予所有权限!
修改mycat配置文件
chown root:root /usr/local/mycat/conf/schema.xml #给予配置文件权限
vim /usr/local/mycat/conf/schema.xml #进入mycat的配置文件
#该页面内容全部删除。先输入数字,按下两下D,即可删除指定数量行。
#将以下字符放入
<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://io.mycat/">
<schema name="USERDB" checkSQLschema="true" sqlMaxLimit="100" dataNode="dn1"></schema>
<dataNode name="dn1" dataHost="localhost1" database="test" />
<dataHost name="localhost1" maxCon="1000" minCon="10" balance="3" dbType="mysql" dbDriver="native" writeType="0" switchType="1" slaveThreshold="100">
<heartbeat>select user()</heartbeat>
<writeHost host="hostM1" url="192.168.148.175:3306" user="root" password="000000">
<readHost host="hostS1" url="192.168.200.171:3306" user="root" password="000000" />
</writeHost>
</dataHost>
</mycat:schema>
看第五行,database="test" 就是允许操作的主节点的数据库
cd /usr/local/mycat #进入mycat文件夹下
cd conf/server.xml #进入配置文件
#到文本的最后一行
#<user> 标签 留下<user name="root">
#将password修改成你想要的密码
#schemas共享的数据库文件的“代号”,所以会将test数据库显示成USERDB
检查配置
启动查看是否启动成功,进入数据库,创建表,字段。
/usr/local/mycat/bin/mycat start #运行mycat服务
netstat -ntlp #查看端口
#会发现有很多端口被启动了,注意下8066端口
进入数据库,看看读写分离是否成功。
mysql -h127.0.0.1 -P8066 -uroot -p000000 #进入数据库
mysql[(none)] > show databaes; #显示USERDB,其实就是主节点的test库
mysql[(none)] > use USERDB; #进入库
mysql[(USERDB)] > create table company(id int not null primary key,name varchar(50),addr varchar(255)); #创建一些表
mysql[(USERDB)] > show tables; #查看是否有表被创建
mysql[(USERDB)] > insert into company values(1,"facebook","usa"); #插入数据
mysql[(USERDB)] > select * from company /#查看字段
mysql -h127.0.0.1 -P9066 -uroot -p000000 -e 'show @@datasource;'
此时就搭建好读写分离。注意!如果出现use USERDB; 无法创建表,请查看报错和是否有配置文件出错。