Mysql读写分离笔记

188 阅读3分钟

准备

三台虚拟机

机器名称
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; 无法创建表,请查看报错和是否有配置文件出错。