搭建mycat

一、准备工作

1、确保jdk已安装成功,并且jdk版本选用1.7以上版本

2、准备一台新的主机mysql_mycat放到master的前面做代理

mycat ip 192.168.232.13

3、将三台机器互做本地解析

192.168.232.11 mysql_master

192.168.232.12 mysql_slave1

192.168.232.13 mysql_slave2

192.168.232.14 mysql_mycat

架构:

二、下载安装mycat

我们通过本地上传mycat包来安装mycat

[root@mysql_mycat ~]# tar xf Mycat-server-1.6.5-release-linux.tar.gz -C /usr/local/

cd 到/usr/local目录下,多了一个mycat文件夹

三、编辑配置文件

[root@mysql_mycat conf]# cd mycat/conf

[root@mysql_mycat conf]# vim server.xml

1.server.xml

<user name="mycat" defaultAccount="true">
<property name="password">Qf@12345!</property>
<property name="schemas">testdb</property> <!-- 表级 DML 权限设置 -->
<!--
<privileges check="false">
<schema name="TESTDB" dml="0110" >
<table name="tb01" dml="0000"></table>
<table name="tb02" dml="1111"></table>
</schema>
</privileges>
-->
</user>
<!--只读用户-->
<user name="mycat_read">
<property name="password">Qf@12345!</property>
<property name="schemas">TESTDB</property>
<property name="readOnly">true</property>
</user>

2.编辑schema.xml

[root@mysql_mycat conf]# vim schema.xml

<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://io.mycat/"> <schema name="testdb" checkSQLschema="false" sqlMaxLimit="100" dataNode="dn1"></schema> <dataNode name="dn1" dataHost="localhost1" database="testdb"/> <dataHost name="localhost1" maxCon="1000" minCon="10" balance="3" writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100">
<heartbeat>select user()</heartbeat> <writeHost host="mysql_master" url="192.168.232.11:3306" user="mycat" password="Qf@12345!" >
<readHost host="mysql_slave1" url="192.168.232.12:3306" user="mycat" password="Qf@12345!" />
</writeHost>
</dataHost>
</mycat:schema> 注意:一定要严格遵守标签开始和结尾格式,否则会报错导致mycat启动后自动关闭

3.在mysql_mycat上创建库

mysql> create database testdb;

mysql> use testdb;

mysql> create table testdb.t1(id int);

mysql> insert into testdb.t1 values(1);

4.在master上给用户授权

[root@mysql_master ~]# mysql -uroot -p

mysql> grant all on testdb.* to mycat@'%' identified by 'Qf@12345!';

mysql> flush privileges;

5.在mycat机器上测试mycat用户登录master

[root@mysql_mycat ~]# mysql -umycat -p'Qf@12345!' -h mysql_master

登录上之后不进行任何操作,直接退出

6.在wrapper.conf中添加

[root@mycat mycat]# cd conf/

[root@mysql_mycat conf]# vim wrapper.conf #在设置JVM哪里添加如下内容

wrapper.startup.timeout=300 //超时时间300秒

启动:

[root@mysql_mycat mycat]# bin/mycat start

Starting Mycat-server...

[root@mysql_mycat mycat]# jps

3814 Jps

3801 WrapperSimpleApp

再次启动jps查看,如果进程丢失一个,则是因为jdk版本问题,更换jdk

四、卸载重新安装jdk

1.卸载原有jdk版本

[root@mysql_mycat mycat]# java -version

查看jdk所有包

[root@mysql_mycat ~]# rpm -qa | grep openjdk

卸载:[root@mysql_mycat ~]# rpm -qa | grep openjdk |xargs rpm -e --nodeps

再查看:[root@mysql_mycat ~]# rpm -qa | grep openjdk

发现jdk已全部删除

2.安装新jdk1.8

(1)从本地上传jdk文件压缩包



(2)解压缩

[root@mysql_mycat ~]# tar xzf jdk-8u162-linux-x64.tar.gz -C /usr/local/

[root@mysql_mycat ~]# cd /usr/local/

[root@mysql_mycat local]# mv jdk1.8.0_162/ java

(3)设置环境变量

[root@mysql_mycat ~]# vim /etc/profile
export JAVA_HOME=/usr/local/java
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
然后使之生效:
[root@mysql_master local]# source /etc/profile

(4)查看java版本

[root@mysql_mycat ~]# java -version
java version "1.8.0_162"
Java(TM) SE Runtime Environment (build 1.8.0_162-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.162-b12, mixed mode)

五、开启mycat

[root@mysql_mycat mycat]# bin/mycat start
[root@mysql_mycat mycat]# jps
7173 WrapperSimpleApp
7189 Jps
查看8066端口
[root@mysql_mycat ~]# netstat -lntp | grep java

(1)将master当做mycat的客户端

[root@mysql_master ~]# mysql -umycat -hmysql_mycat -p'Qf@12345!' -P 8066

六、常见问题

1.在master上登录:mysql -umycat -hmysql_mycat -p'Qf@12345!' -P 8066
2.若出现连接失败,大概率是mycat未启动
3.cd到/mycat/bin/mycat目录,start启动
4.查看jps,有两个进程,启动成功
5.多行注释:
<![CDATA[---内容---]]>
6.mycat配置的密码是Qf@12345!
7.插入数据操作在mycat端

七、show tables报错

如果在show table报错:
mysql> show tables;
ERROR 3009 (HY000): java.lang.IllegalArgumentException: Invalid DataSource:0
解决方式:
登录master服务将mycat的登录修改为%
mysql> update user set Host = '%' where User = 'mycat' and Host = 'localhost';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql> flush privileges;
或者在授权用户mycat权限为*.*

mycat搭建的更多相关文章

  1. Mycat搭建负载均衡,读写分离的Mysql集群

    Mycat搭建负载均衡,读写分离的Mysql集群 准备环境 1.mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz 2.Mycat-server-1.6.7.4-te ...

  2. mysql+mycat搭建稳定高可用集群,负载均衡,主备复制,读写分离

    数据库性能优化普遍采用集群方式,oracle集群软硬件投入昂贵,今天花了一天时间搭建基于mysql的集群环境. 主要思路 简单说,实现mysql主备复制-->利用mycat实现负载均衡. 比较了 ...

  3. mysql与mycat搭建实现集群与读写分离

    数据库性能优化普遍采用集群方式,oracle集群软硬件投入昂贵,今天花了一天时间搭建基于mysql的集群环境. 主要思路 简单说,实现mysql主备复制-->利用mycat实现负载均衡. 比较了 ...

  4. docker应用-6(mysql+mycat 搭建数据库集群)

    上一节,通过使用overlay网络,搭建了跨主机的docker容器集群.下面,在这个跨主机的docker容器集群环境下,搭建mysql 数据库集群. mysql主从自动备份和自动切换 从数据安全性考虑 ...

  5. Linux 之Mycat搭建报错 java.net.MalformedURLException: Local host name unknown: java.net.UnknownHostException

    搭建MyCat环境时出现 错误: 代理抛出异常错误: java.net.MalformedURLException: Local host name unknown: java.net.Unknown ...

  6. mycat搭建环境

    macos完全卸载mysql: https://blog.csdn.net/u012721519/article/details/55002626 踩过的坑: mycat1.6不支持单库分表; 最少要 ...

  7. MySQL分布式集群之MyCAT(转)

    原文地址:http://blog.itpub.net/29510932/viewspace-1664499/ 隔了好久,才想起来更新博客,最近倒腾的数据库从Oracle换成了MySQL,研究了一段时间 ...

  8. 应用集成mycat,实现mycat的高可用与mysql的读写分离

    前言 开心一刻 一个女人自朋友圈写道:我家老公昨天和别人家的老婆出去旅游,迄今未归,我则被别人家的老公折腾了一天,好累哦! 圈子下面,评论无数,老公在下面评论到:能不能好好说话,我只不过陪女儿去毕业旅 ...

  9. mysql主从服务搭建

    一.安装mysql 检测当前centos是否安装了mysql:yum list installed | grep mysql yum list installed | grep mariadb    ...

随机推荐

  1. PHP一句话简单免杀

    PHP一句话简单免杀 原型 几种已经开源的免杀思路 拆解合并 <?php $ch = explode(".","hello.ev.world.a.l"); ...

  2. 【java】学习路线2-构造、Scanner包导入、字符串操作、数组、引用类型

    请先查看前置知识: [JAVA]基础1-字符串.堆.栈.静态与引用类型 https://www.cnblogs.com/remyuu/p/15990274.html import java.util. ...

  3. Docker0网络及原理探究

    个人观点:Docker网络通信在容器编排.集群部署中具有举足轻重的地位,(玩docker不懂docker0那就......玩不透哇)本篇分析Docker网络,并通过启动几个容器来探究Docker网络及 ...

  4. Laravel框架中文件所在的位置

  5. helm安装metrics-server-3.8.2

    Application version 0.6.1 Chart version 3.8.2 获取chart包 helm repo add metrics-server https://kubernet ...

  6. RabbitMQ之消息模式简单易懂,超详细分享~~~

    前言 上一篇对RabbitMQ的流程和相关的理论进行初步的概述,如果小伙伴之前对消息队列不是很了解,那么在看理论时会有些困惑,这里以消息模式为切入点,结合理论细节和代码实践的方式一起来学习. 正文 常 ...

  7. Redis变慢?深入浅出Redis性能诊断系列文章(二)

    (本文首发于"数据库架构师"公号,订阅"数据库架构师"公号,一起学习数据库技术) 本篇为Redis性能问题诊断系列的第二篇,本文主要从应用发起的典型命令使用上进 ...

  8. Windows Server体验之升级安装

    由于Windows Server的版本是每半年更新的,而微软对于产品的支持周期又是有限的.比如Windows Server 1803的主流支持只到2019年11月12日.也就是说,最多1年半,就需要更 ...

  9. Python数据科学手册-机器学习: 支持向量机

    support vector machine SVM 是非常强大. 灵活的有监督学习算法, 可以用于分类和回归. 贝叶斯分类器,对每个类进行了随机分布的假设,用生成的模型估计 新数据点 的标签.是属于 ...

  10. ES 7.13版本设置索引模板和索引生命周期管理

    第一步:索引管理中查看都有哪些索引文件,然后添加索引模式(后面的日期用*表示) 第二步:索引生命周期管理 自带的有一个log,就使用这个,不用再新建了,根据需求修改里面的配置就行了 第三步:添加索引模 ...