图片 10

通过mycat实现mysql的读写分离

Posted by

mysql的主从配置沿用上一篇博客的配置:

1.首先安装MySQL ab:

mycat下载地址:

192.168.6.163 master

试验版本:Mycat-server-1.6-release 

192.168.6.167 slave

# cd /usr/local
# mv ~/Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz /usr/local
# tar -zxvf Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz
# cd /usr/local/mycat/conf/
# vim server.xml 查看mycat用户的默认配置

master: vi /etc/opt/rh/rh-mysql57/my.cnf.d/rh-mysql57-mysql-server.cnf

<!– mycat的默认用户配置,保持不变即可 –>
<user name=”root”>
  <property name=”password”>123456</property>
  <property name=”schemas”>TESTDB</property>
</user>

log-bin=mysql-bin

  # vim schema.xml 修改schema配置读写分离

server-id=101

<?xml version=”1.0″?>
<!DOCTYPE mycat:schema SYSTEM “schema.dtd”>
<mycat:schema xmlns:mycat=”;
  <schema name=”TESTDB” checkSQLschema=”false”
sqlMaxLimit=”100″>
    <!– 设置物理表 –>
    <table name=”student” dataNode=”dn1″ />
  </schema>
  <!– 设置物理库 –>
  <dataNode name=”dn1″ dataHost=”localhost1″ database=”test”
/>  
    <!– balance=1设置为读写分离 –>
    <dataHost name=”localhost1″ maxCon=”1000″ minCon=”10″
balance=”1″ writeType=”0″ dbType=”mysql” dbDriver=”native”
switchType=”1″ slaveThreshold=”100″>
    <heartbeat>select user()</heartbeat>
    <!– 读库配置 –>
    <writeHost host=”hostM1″ url=”xxx.xxx.xxx.xxx:3306″
user=”root” password=”xxxxxx”>
      <!– 读库配置,可配置多个读库 –>
      <readHost host=”hostS2″ url=”xxx.xxx.xxx.xxx:3316″
user=”root” password=”xxxxxx” />
    </writeHost>
  </dataHost>
</mycat:schema>

* grant replication slave on *.* to replica@’%’ identified by
‘password’; *

# cd ../bin
# ./mycat start 启动mycat
# ps -aux | grep mycat 查看mycat是否启动成功

flush privileges;

在客户端新建一个链接到mycat的数据库连接,用户名密码为server.xml中配置的用户

exit

图片 1  

slave:vi /etc/opt/rh/rh-mysql57/my.cnf.d/rh-mysql57-mysql-server.cnf

连接中库为TESTDB,也是在server.xm中配置的

log-bin=mysql-bin
server-id=102
read_only=1
report-host=node01.srv.world

图片 2

systemctl restart rh-mysql57-mysqld 

下面验证读写分离

master:

mycat:图片 3

flush tables with read lock; 

写库:图片 4

show master status; 

读库:图片 5

mysqldump -u root -p –all-databases –lock-all-tables –events >
mysql_dump.sql 

修改读库的数据:图片 6

unlock tables;

mycat中的数据和读库数据一致:图片 7

scp mysql_dump.sql node01.srv.world:/tmp/ 

停止读库的服务:图片 8

slave:

mycat插入一条数据:图片 9

mysql -u root -p < /tmp/mysql_dump.sql 

写库中存在插入的数据:图片 10

change master to
master_host=’192.168.6.163′,
master_user=’replica’,
master_log_file=’mysql-bin.000001′,40
master_log_pos=732;

 

start slave;

至此通过mycat实现mysql的读写分离配置成功。

* show slave statusG*

ps.mycat最大的功能在于对数据库分片的处理,如果有机会,以后会进行相关的试验。

安装成功;

 

2.安装mycat

首先配置jdk:

jdk-8u73-linux-x64.rpm 这个直接yum -y install 

解压:Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz

相关文章

Leave a Reply

电子邮件地址不会被公开。 必填项已用*标注