一、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