一、CentOS7安装MYCAT中间件
JAVA环境安装: https://www.cnblogs.com/chaizhenhua/p/12383859.html
Mycat官方网站地址: http://www.mycat.io/
Mycat程序下载地址: http://dl.mycat.io/
1、下载Mycat程序二进制包:
[root@local-test ~]# wget http://dl.mycat.io/1.6.7.4/Mycat-server-1.6.7.4-release/Mycat-server-1.6.7.4-release-20200105164103-linux.tar.gz
[root@local-test ~]# ls
Mycat-server-1.6.7.4-release-20200105164103-linux.tar.gz
[root@local-test ~]#
2、安装Mycat
a.解压
[root@local-test ~]# tar xf Mycat-server-1.6.7.4-release-20200105164103-linux.tar.gz -C /usr/local/
[root@local-test ~]# ll /usr/local/
总用量 0
drwxr-xr-x 7 root root 85 2月 28 14:02 mycat
b.Mycat目录结构:
[root@local-test ~]# cd /usr/local/mycat/
[root@local-test mycat]# ll
总用量 12
drwxr-xr-x 2 root root 190 2月 28 14:02 bin #启动脚本
drwxrwxrwx 2 root root 6 10月 22 09:26 catlet #这个目前还没有实际意义,先忽略
drwxrwxrwx 4 root root 4096 2月 28 14:02 conf #配置文件目录
drwxr-xr-x 2 root root 4096 2月 28 14:02 lib #程序需要的各种包
drwxrwxrwx 2 root root 6 1月 5 03:40 logs #日志目录
-rwxrwxrwx 1 root root 227 1月 5 03:41 version.txt #版本信息
[root@local-test mycat]#
c.启动Mycat
[root@local-test ~]# cd /usr/local/mycat/bin/
[root@local-test bin]# ./mycat start
Starting Mycat-server...
[root@local-test bin]#
d.检测mycat启动是否成功
[root@local-test bin]# ps -ef|grep mycat
mycat默认用户名密码是:root/123456
1 、登录后台管理窗口
此登录方式用于管理维护 Mycat
mysql -umycat -p123456 -P 9066 -h 192.168.140.128
#常用命令如下:
show database
2 、登录 数据 窗口
此登录方式用于通过 Mycat 查询数据,我们选择这种方式访问 Mycat
mysql -umycat -p123456 -P 8066 -h 192.168.140.128
mysql -umycat -p123456 -h127.0.0.1 -P8066 --default-auth=mysql_native_password
启动MyCat:
./mycat start
控制台启动:./mycat console
查看启动状态:
./mycat status
停止:
./mycat stop
重启:
./mycat restart
---------------------------------------------------------------------------------------------------------------------------------
登陆报错:Using a password on the command line interface can be insecure.
ERROR 1045 (HY000): Access denied for user 'mycat', because password is error
[root@localhost ~]# mysql -umycat -p123456 -h127.0.0.1 -P8066
mysql: [Warning] Using a password on the command line interface can be insecure.
ERROR 1045 (HY000): Access denied for user 'mycat', because password is error
解决方法:
1、修改server.xml,增加:
<property name="defaultSqlParser">druidparser</property>
<property name="useHandshakeV10">1</property> <!--(这里记得修改,没有的话要加上)-->
<property name="mutiNodeLimitType">1</property>
<property name="charset">utf8</property>
<property name="serverPort">8066</property>
<property name="managerPort">9066</property>
2、修改schema.xml,将 dbDriver="native"改为dbDriver="jdbc",并将url改为jdbc方式,内容如下:
<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://io.mycat/">
<schema name="TESTDB" checkSQLschema="true" sqlMaxLimit="100" dataNode="dn1">
<!-- auto sharding by id (long) -->
<!-- <table name="travelrecord" dataNode="dn1" rule="auto-sharding-long" /> -->
<!-- <table name="company" primaryKey="ID" type="global" dataNode="dn1,dn2,dn3" /> -->
</schema>
<dataNode name="dn1" dataHost="localhost1" database="mycatdb" />
<dataHost name="localhost1" maxCon="1000" minCon="10" balance="0"
writeType="0" dbType="mysql" dbDriver="jdbc" switchType="1" slaveThreshold="100"> <!-- dbDriver="native" -->
<heartbeat>select user()</heartbeat>
<!-- can have multi write hosts -->
<writeHost host="hostM1" url="jdbc:mysql://localhost:3306?useSSL=false&useUnicode=true&characterEncoding=UTF8&serverTimezone=UTC" user="root" password="root">
<!-- can have multi read hosts -->
<readHost host="hostS2" url="jdbc:mysql://192.168.232.135:3306?useSSL=false&useUnicode=true&characterEncoding=UTF8&serverTimezone=UTC" user="root" password="root" />
</writeHost>
</dataHost>
</mycat:schema>
3、重新启动mycat
4、登陆mycat,在后面指定mysql客户端连接时的加密方式:--default-auth=mysql_native_password
[root@localhost ~]# mysql -umycat -p123456 -h127.0.0.1 -P8066 --default-auth=mysql_native_password