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环境搭建详细教程的文章就介绍到这了,更多相关MyCat环境搭建内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
解决启动MySQL服务时出现"mysql本地计算机上的MySQL服务启动后停止"的问题
某一天我的MySQL启动突然出现了异常:“mysql本地计算机上的MySQL服务启动后停止,某些在未由其他服务或程序使用时将自动停止,” ,小编在网络上面找了很多方法,MySQL启动成功了,但是第二天开启MySQL时还是出现了这个问题,现把两种方法总结一下,需要的朋友可以参考下2023-11-11mysql将数据库中所有表结构和数据导入到另一个库的方法(亲测有效)
这篇文章主要给大家介绍了关于mysql将数据库中所有表结构和数据导入到另一个库的方法,文中通过代码介绍的非常详细,亲测有效,对同样遇到这个需求的朋友具有一定的参考借鉴价值,需要的朋友可以参考下2024-01-01MySQL中查询所有数据库占用磁盘空间大小和单个库中所有表的大小的sql语句
这篇文章主要介绍了在mysql中如何查询所有数据库占用磁盘空间大小的SQL语句,这样方便我们了解数据库的一些情况2013-08-08mysql提示[Warning] Invalid (old?) table or database name问题的解决方
今天一个朋友的上服务器出现[Warning] Invalid (old?) table or database name问题,通过分析binlog日志发现,在以下sql语句中出现问题,由于涉及敏感内容,用sql语法表示2012-07-07MySQL在右表数据不唯一的情况下使用left join的方法
这篇文章主要介绍了MySQL在右表数据不唯一的情况下使用left join的方法,针对右表符合条件表达式的记录数大于1条时left join所显示的结果需求来讲,需要的朋友可以参考下2016-03-03
最新评论