Board logo

标题: CentOS6_Mycat实现MariaDB的读写分离 [打印本页]

作者: admin    时间: 2019-12-14 12:51     标题: CentOS6_Mycat实现MariaDB的读写分离

Mycat是基于Java语言编写的数据库中间件,后端可支持MySQL、MariaDB、SQL Server、Oracle、DB2等主流数据库;其核心功能是分库、分表;可实现数据库集群。 图片1.png Mycat:192.168.168.130 MariaDB-1(master):192.168.168.154 MariaDB-2(slave):192.168.168.155 笺注:Mycat服务器上无需安装MySQL/MariaDB软件。 在Mycat服务器上进行配置: [root@localhost ~]# cat /etc/redhat-release CentOS release 6.9 (Final) [root@localhost ~]# [root@localhost ~]# uname -r 2.6.32-696.el6.x86_64 本地光盘Yum源里就有Java环境的相关软件包: yum list |grep java-1.8 图片2.png 安装Java环境(Mycat基于Java) [root@localhost ~]# yum -y install java-1.8.0-openjdk.x86_64 第三列前面有 @ 代表已经安装了: yum list |grep java-1.8 图片3.png 查看Java的版本: [root@localhost ~]# java -version openjdk version "1.8.0_121" OpenJDK Runtime Environment (build 1.8.0_121-b13) OpenJDK 64-Bit Server VM (build 25.121-b13, mixed mode) 安装Mycat: 下载Mycat: https://pan.baidu.com/s/1PkES3DjDU-Ujny4Jr60HWw 解压: [root@localhost ~]# tar -zxvf Mycat-server-1.6.5-release-20180122220033-linux.tar.gz 移动解压出来的文件夹到/usr/local下: mv mycat /usr/local/ 创建专门运行Mycat的用户: adduser mycat 更改指定目录、文件的属主和属组: chown -R mycat:mycat /usr/local/mycat 配置环境变量: [root@localhost ~]# vi /etc/profile 文件最后追加: export JAVA_HOME=/usr export MYCAT_HOME=/usr/local/mycat 刷新环境变量: [root@localhost ~]# source /etc/profile 切换到mycat用户: [root@localhost ~]# su - mycat 切换目录,启动Mycat: cd /usr/local/mycat/bin/ ./mycat start 图片4.png 开机自动启动Mycat: [root@localhost ~]# vi /etc/rc.d/rc.local 文件最后追加: su - mycat -c "/usr/local/mycat/bin/mycat start" ###### 配置读写分离的信息: [root@localhost ~]# cat /usr/local/mycat/conf/schema.xml data1" checkSQLschema="false" dataNode="dn1"> 192.168.168.130" database="data1" /> 192.168.168.130" maxCon="10000" minCon="10" balance="1" writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100"> select user() 如下图: 图片5.png 备注: schema name="data1" 要对应文件server.xml里的schemas的name; 192.168.168.130 为Mycat服务器的IP地址; database="data1" 为实际数据库名称; m1 为writeHost(写入数据库服务器); m2 为stand by writeHost(备用写入数据库服务器),会在m1宕机后自动进行替代; s1、s2 为readHost(读取数据库服务器); m1、m2、s1、s2 都是在这里自定义的,无需去修改其他文件; 实验中,s2、m2都不存在的,但不影响读写分离。 maxCon="10000",Mycat的最大连接数 minCon="10",Mycat的最小连接数 balance="0",不开启读写分离机制,所有读操作都发送到当前可用的writeHost; balance="1",开启读写分离机制,全部的readHost与stand by writeHost(s1,s2,m2)都参与读操作,即参与select语句的负载均衡; writeType="0",所有写操作发送到第一个writeHost,第一个writeHost宕机了就切换到还生存的第二个writeHost; writeType="1",所有写操作随机的发送到可用的writeHost; switchType :(数据库服务器宕机时) 1 默认值,自动切换; -1 表示不自动切换; ###### 配置Mycat的连接信息(帐号、密码等): [root@localhost ~]# vi /usr/local/mycat/conf/server.xml 图片6.png 修改为: Python" defaultAccount="true"> 123456 data1 如下图: 图片7.png 注释: Mycat的帐号自定义为Python,密码123456;应用程序都连接这个Mycat帐号; schemas的name(data1)要对应文件schema.xml的schema name 重启Mycat服务: 图片8.png TCP 9066为管理端口,Mycat服务正常运行时才会打开的: [root@localhost ~]# netstat -anp |grep 9066 tcp 0 0 :::9066 :::* LISTEN 2436/java TCP 8066为应用程序的连接端口,Mycat服务正常运行时才会打开的: [root@localhost ~]# netstat -anp |grep 8066 tcp 0 0 :::8066 :::* LISTEN 2436/java Mycat服务器要在防火墙打开以下端口: iptables -I INPUT -p tcp --dport 9066 -j ACCEPT iptables -I INPUT -p tcp --dport 8066 -j ACCEPT iptables-save > /etc/sysconfig/iptables 关闭SELinux: setenforce 0 sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config ###### ###### 所有数据库服务器都要有库data1,并且创建数据库用户zhuohua@192.168.168.130: MariaDB [(none)]> show databases; +--------------------+ | Database | +--------------------+ | data1 | | data2 | | information_schema | | mysql | | performance_schema | +--------------------+ 5 rows in set (0.001 sec) MariaDB [(none)]> grant all on data1.* to zhuohua@192.168.168.130 identified by '168'; Query OK, 0 rows affected (0.001 sec) 注释:允许客户端使用IP地址192.168.168.130管理库data1即可。 ###### 测试读写分离:(只连接Mycat帐号、Mycat服务器的IP地址;TCP 9066为管理端口) [root@oracle-linux6 ~]# mysql -u"Python" -p"123456" -h192.168.168.130 -P9066 图片9.png 查看Mycat的版本信息: mysql> show @@version; +-------------------------------------------+ | VERSION | +-------------------------------------------+ | 5.6.29-mycat-1.6.5-release-20180122220033 | +-------------------------------------------+ 1 row in set (0.00 sec) 查看逻辑数据库: mysql> show @@databases; +----------+ | DATABASE | +----------+ | data1 | +----------+ 1 row in set (0.00 sec) 查看数据源:(离线状态的主机的IDLE的值都为0) mysql> show @@datasource; +----------+------+-------+-----------------+------+------+--------+------+-------+---------+-----------+------------+ | DATANODE | NAME | TYPE | HOST | PORT | W/R | ACTIVE | IDLE | SIZE | EXECUTE | READ_LOAD | WRITE_LOAD | +----------+------+-------+-----------------+------+------+--------+------+-------+---------+-----------+------------+ | dn1 | m1 | mysql | 192.168.168.154 | 3306 | W | 0 | 10 | 10000 | 63 | 0 | 0 | | dn1 | m2 | mysql | 192.168.168.180 | 3306 | W | 0 | 0 | 10000 | 0 | 0 | 0 | | dn1 | s1 | mysql | 192.168.168.155 | 3306 | R | 0 | 4 | 10000 | 33 | 0 | 0 | | dn1 | s2 | mysql | 192.168.168.156 | 3306 | R | 0 | 0 | 10000 | 0 | 0 | 0 | +----------+------+-------+-----------------+------+------+--------+------+-------+---------+-----------+------------+ 4 rows in set (0.00 sec) 注释:数据库服务正常运行的192.168.168.154 、192.168.168.155的IDLE的值都不为0( 一旦数据库服务停止,其IDLE的值就会变为0 ) 应用程序只连接Mycat帐号、Mycat服务器的IP地址,默认连接端口为TCP 8066 [root@oracle-linux6 ~]# mysql -u"Python" -p"123456" -h192.168.168.130 -P8066 图片10.png 图片11.png 图片12.png 注释:数据库服务器之间做了主从同步,所以写入数据后,读取到的数据是一样的。 在数据库主、从服务器看到的数据也是一样的: select * from data1.class2; 图片13.png 笺注:Mycat服务器重启后,也是可以正常进行读写分离的。 ############ 修改Mycat的默认端口: [root@localhost ~]# vi /usr/local/mycat/conf/server.xml 图片14.png 修改为:(必须要把注释符去掉) 8077 9077 300000 0.0.0.0 4096 32 如下图: 图片15.png 重启Mycat服务: 图片16.png 至此,TCP 9077为管理端口: [root@localhost ~]# netstat -anp |grep 9077 tcp 0 0 :::9077 :::* LISTEN 1758/java TCP 8077为应用程序的连接端口: [root@localhost ~]# netstat -anp |grep 8077 tcp 0 0 :::8077 :::* LISTEN 1758/java Mycat服务器要在防火墙打开以下端口: iptables -I INPUT -p tcp --dport 9077 -j ACCEPT iptables -I INPUT -p tcp --dport 8077 -j ACCEPT iptables-save > /etc/sysconfig/iptables 相关文章: MariaDB主从同步 CentOS8_Mycat实现MySQL的读写分离 ################################# ################################# 亲,学习研究也要劳逸结合哦,来我微店逛逛,买点东西好好犒劳犒劳自己和家人吧^_^^_^ 电蚊拍可充电式LED灭苍蝇拍大号网面强力灭蚊拍电蚊子拍 wenpai.png 苏泊尔榨汁机杯家用全自动果蔬多功能迷你学生小型便携式炸果汁机 shuiguo.png

图片附件: shuiguo.png (2020-1-30 15:35, 412.47 KB) / 下载次数 106
http://blog.zhuohua.store/attachment.php?aid=4163&k=f941460a7b920decedd5fcd765600f22&t=1714456172&sid=ZVtjJk



图片附件: wenpai.png (2020-1-30 15:35, 198.64 KB) / 下载次数 92
http://blog.zhuohua.store/attachment.php?aid=4165&k=472fd8f243f10e73239fd7261b8fa1d3&t=1714456172&sid=ZVtjJk



图片附件: 图片1.png (2021-3-22 00:38, 49.79 KB) / 下载次数 103
http://blog.zhuohua.store/attachment.php?aid=15963&k=219b4fc14871a999ec31cc8b01e5a861&t=1714456172&sid=ZVtjJk



图片附件: 图片2.png (2021-3-22 00:39, 155.94 KB) / 下载次数 124
http://blog.zhuohua.store/attachment.php?aid=15964&k=a10a84b6a2118fa2ae7982cc866f08d3&t=1714456172&sid=ZVtjJk



图片附件: 图片3.png (2021-3-22 00:40, 155.92 KB) / 下载次数 118
http://blog.zhuohua.store/attachment.php?aid=15965&k=076aee73420108e7f3811e6e2361f483&t=1714456172&sid=ZVtjJk



图片附件: 图片4.png (2021-3-22 00:41, 51.96 KB) / 下载次数 119
http://blog.zhuohua.store/attachment.php?aid=15966&k=b18024ce42652c6199cb1130a0c6e6be&t=1714456172&sid=ZVtjJk



图片附件: 图片5.png (2021-3-22 00:44, 174.63 KB) / 下载次数 101
http://blog.zhuohua.store/attachment.php?aid=15967&k=a10092974fb0ef28e28935811692fc5a&t=1714456172&sid=ZVtjJk



图片附件: 图片6.png (2021-3-22 00:46, 140.54 KB) / 下载次数 118
http://blog.zhuohua.store/attachment.php?aid=15968&k=37fdab10a4e8ecf1fbf3e5e0df6b0887&t=1714456172&sid=ZVtjJk



图片附件: 图片7.png (2021-3-22 00:47, 82.91 KB) / 下载次数 121
http://blog.zhuohua.store/attachment.php?aid=15969&k=ae54dcf28cf2b32b645932acbf394570&t=1714456172&sid=ZVtjJk



图片附件: 图片8.png (2021-3-22 00:47, 67.08 KB) / 下载次数 121
http://blog.zhuohua.store/attachment.php?aid=15970&k=bfa5ad40b2d1c0ddf805011b0f8ee002&t=1714456172&sid=ZVtjJk



图片附件: 图片9.png (2021-3-22 00:49, 157.54 KB) / 下载次数 108
http://blog.zhuohua.store/attachment.php?aid=15971&k=db41e70f11a98a7b7a177eb81b13bc0f&t=1714456172&sid=ZVtjJk



图片附件: 图片10.png (2021-3-22 00:51, 145.01 KB) / 下载次数 117
http://blog.zhuohua.store/attachment.php?aid=15972&k=eb7db3990f593183f8d23dde107092ff&t=1714456172&sid=ZVtjJk



图片附件: 图片11.png (2021-3-22 00:51, 108.56 KB) / 下载次数 128
http://blog.zhuohua.store/attachment.php?aid=15973&k=9fadd1d380f3865602e020df21df4082&t=1714456172&sid=ZVtjJk



图片附件: 图片12.png (2021-3-22 00:51, 92.32 KB) / 下载次数 120
http://blog.zhuohua.store/attachment.php?aid=15974&k=311602475c5769e90e7371a5c3f01e64&t=1714456172&sid=ZVtjJk



图片附件: 图片13.png (2021-3-22 00:51, 24.71 KB) / 下载次数 113
http://blog.zhuohua.store/attachment.php?aid=15975&k=9b01ab3441addbc7e1c75cad7c334032&t=1714456172&sid=ZVtjJk



图片附件: 图片14.png (2021-3-22 00:52, 124.37 KB) / 下载次数 113
http://blog.zhuohua.store/attachment.php?aid=15976&k=5d3fdd7dec60ae9b97269bfe017a3bee&t=1714456172&sid=ZVtjJk



图片附件: 图片15.png (2021-3-22 00:53, 122.64 KB) / 下载次数 115
http://blog.zhuohua.store/attachment.php?aid=15977&k=166b523177f9903ae24f636856972639&t=1714456172&sid=ZVtjJk



图片附件: 图片16.png (2021-3-22 00:53, 67.08 KB) / 下载次数 123
http://blog.zhuohua.store/attachment.php?aid=15978&k=81b04278550760011dfac3b7fdeff0c0&t=1714456172&sid=ZVtjJk






欢迎光临 blog.zhuohua.store (http://blog.zhuohua.store/) Powered by Discuz! 7.2