mycat搭建

打印 上一主题 下一主题

主题 905|帖子 905|积分 2715

搭建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
  1. <user name="mycat" defaultAccount="true">
  2.                 <property name="password">Qf@12345!</property>
  3.                 <property name="schemas">testdb</property>
  4.                
  5.                
  6.         </user>
  7.         
  8.         <user name="mycat_read">
  9.                 <property name="password">Qf@12345!</property>
  10.                 <property name="schemas">TESTDB</property>
  11.                 <property name="readOnly">true</property>
  12.         </user>
复制代码
2.编辑schema.xml
[root@mysql_mycat conf]# vim schema.xml
  1. <?xml version="1.0"?>
  2. <!DOCTYPE mycat:schema SYSTEM "schema.dtd">
  3. <mycat:schema xmlns:mycat="http://io.mycat/">
  4.         <schema name="testdb" checkSQLschema="false" sqlMaxLimit="100" dataNode="dn1"></schema>
  5.        
  6.         <dataNode name="dn1" dataHost="localhost1" database="testdb"/>
  7.         <dataHost name="localhost1" maxCon="1000" minCon="10" balance="3" writeType="0" dbType="mysql" dbDriver="native" switchType="1"  slaveThreshold="100">
  8.                 <heartbeat>select user()</heartbeat>
  9.                 <writeHost host="mysql_master" url="192.168.232.11:3306" user="mycat" password="Qf@12345!" >
  10.                         <readHost host="mysql_slave1" url="192.168.232.12:3306" user="mycat" password="Qf@12345!" />
  11.                 </writeHost>
  12.         </dataHost>
  13. </mycat:schema>
  14. 注意:一定要严格遵守标签开始和结尾格式,否则会报错导致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)设置环境变量
  1. [root@mysql_mycat ~]# vim /etc/profile
  2. export JAVA_HOME=/usr/local/java
  3. export JRE_HOME=$JAVA_HOME/jre
  4. export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
  5. export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
  6. 然后使之生效:
  7. [root@mysql_master local]# source /etc/profile
复制代码
(4)查看java版本
  1. [root@mysql_mycat ~]# java -version
  2. java version "1.8.0_162"
  3. Java(TM) SE Runtime Environment (build 1.8.0_162-b12)
  4. Java HotSpot(TM) 64-Bit Server VM (build 25.162-b12, mixed mode)
复制代码
五、开启mycat
  1. [root@mysql_mycat mycat]# bin/mycat start
  2. [root@mysql_mycat mycat]# jps
  3. 7173 WrapperSimpleApp
  4. 7189 Jps
  5. 查看8066端口
  6. [root@mysql_mycat ~]# netstat -lntp | grep java
复制代码
(1)将master当做mycat的客户端
[root@mysql_master ~]# mysql -umycat -hmysql_mycat -p'Qf@12345!' -P 8066
六、常见问题
  1. 1.在master上登录:mysql -umycat -hmysql_mycat -p'Qf@12345!' -P 8066
  2. 2.若出现连接失败,大概率是mycat未启动
  3. 3.cd到/mycat/bin/mycat目录,start启动
  4. 4.查看jps,有两个进程,启动成功
  5. 5.多行注释:
  6. <![CDATA[---内容---]]>
  7. 6.mycat配置的密码是Qf@12345!
  8. 7.插入数据操作在mycat端
复制代码
七、show tables报错
  1. 如果在show table报错:
  2. mysql> show tables;
  3. ERROR 3009 (HY000): java.lang.IllegalArgumentException: Invalid DataSource:0
  4. 解决方式:
  5. 登录master服务将mycat的登录修改为%
  6. mysql> update user set Host = '%' where User = 'mycat' and Host = 'localhost';
  7. Query OK, 1 row affected (0.00 sec)
  8. Rows matched: 1 Changed: 1 Warnings: 0
  9. mysql> flush privileges;
  10. 或者在授权用户mycat权限为*.*
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

tsx81429

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表