【版權所有,轉載請注明出處!違者必究!】
最近在搞mycat去實現主從庫讀寫分離,所以博主就在自己的windows機器上進行了環境的搭建,在搭建MySQL多實例的時候還算順利,就是mysql8和mycat連接的時候,真真正正的體會到了什么叫做坑啊,因為現在百度上面搜索出來的基本上是老版本之間的連接,所以相關資料很少,於是我才有想記錄下來這個比較新的版本之期間的連接。
下面介紹一下演員:
1.mysql-8.0.20-winx64.zip(傳送門到windows版本下載)
2.Mycat-server-1.6-RELEASE-20161028204710-win.tar.gz(傳送門到windows版本下載)
3.windows 10環境
一、mysql8多實例安裝步驟:
1.將mysql三個壓縮包分別解壓至三個文件夾,並命名如下圖所示:
2.點擊進入mysql1文件夾,在目錄下新建my.ini文件,文件內容如下:
[client] default-character-set=utf8 [mysql] # 設置mysql客戶端默認字符集 default-character-set=utf8 [mysqld] #skip-name-resolve #skip-grant-tables default-authentication-plugin=mysql_native_password lower_case_table_names = 1 character_set_server = utf8 #設置3306端口 port = 3306 # 設置mysql的安裝目錄 basedir=D:\mysql\mysql1\ # 設置mysql數據庫的數據的存放目錄 datadir=D:\mysql\mysql1\data sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES character-set-server = utf8mb4 performance_schema_max_table_instances = 600 table_definition_cache = 400 table_open_cache = 256
3.用管理員身份打開命令窗口,這點很重要,一定是管理員身份,不會的自行百度。
4.切換目錄至mysql1的bin目錄下
5.執行初始化安裝命令
.\mysqld --defaults-file=D:\mysql\mysql1\my.ini --initialize --console
注意這個時候,安裝成功后,會隨機分配mysql root用戶的登錄密碼,一定要記錄下來,后面登陸修改密碼的時候會使用到。
6.執行服務安裝目錄
.\mysqld install MySQL1 --defaults-file="D:\mysql\mysql1\my.ini
7.啟動服務
net start MySQL1
8.登陸mysql
.\mysql -u root -p --protocol=tcp --host=localhost --port=3306
提示輸入步驟5的密碼,直接拷貝即可。
9.修改密碼並刷權限
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
flush privileges;
至此,第一個mysql實例服務已經安裝完成,其與服務參考上述步驟即可。下圖為安裝后的效果。
二、mycat安裝與連接
1.解壓mycat壓縮包到mycat文件下。
2.配置環境變量
Path中添加
這里mycat有幾個重要的配置文件,因為網上有很多這種文件的講解,所以我不做過多闡述,因為我的初衷是實踐部分
首先,我們要配置mycat conf目錄下的server.xml,每種配置文件修改之前記得備份一下原始文件
看到這個截圖,你肯定慌了,怎么復制粘貼,別慌,下面就是了。
<system>
<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>
</system>
<user name="root">
<property name="usingDecrypt">1</property>
<property name="password">GO0bnFVWrAuFgr1JMuMZkvfDNyTpoiGU7n/Wlsa151CirHQnANVk3NzE3FErx8v6pAcO0ctX3xFecmSr+976QA==</property>
<property name="schemas">tjyj</property>
</user>
因為我是使用的mycat密碼密文加密形式,你也可以使用不加密的方式,只需修改一下user標簽里面的內容為:
<property name="password">123456</property>
<property name="schemas">tjyj</property>
這些標簽的意思我不講解了,你就反正是粘貼復制,等你想知道的時候,去看看其他文章就行了。
然后是修改schema.xml文件,下面的這些步驟才是精華部分,因為現在網上大多是基於老版本構建的,所以請注意咯。
注意:mysql8連接mycat的時候,因為密碼方式的問題只能采用jdbc的方式去連接mycat。
具體的配置,你拷貝下面這段話就行了
<!-- 設置表的存儲方式.schema name="TESTDB" 與 server.xml中的 TESTDB 設置一致 -->
<schema name="tjyj" checkSQLschema="true" sqlMaxLimit="100">
<table name="t_user" dataNode="node_db01" />
</schema>
<!-- 設置dataNode 對應的數據庫,及 mycat 連接的地址dataHost -->
<dataNode name="node_db01" dataHost="locahost01" database="db1" />
<!-- mycat 邏輯主機dataHost對應的物理主機.其中也設置對應的mysql登陸信息 -->
<dataHost name="locahost01" maxCon="1000" minCon="10" balance="0" writeType="0" dbType="mysql" dbDriver="jdbc">
<heartbeat>select user();</heartbeat>
<writeHost host="MySQL1" url="jdbc:mysql://127.0.0.1:3306?useSSL=false&serverTimezone=UTC" user="root" password="123456"/>
<!--這里新建你的從數據庫-->
</dataHost>
這里有一個重要的步驟就是一定要下載mysql8的jdbc驅動放到mycat/lib目錄下,必須使用8.0以上jar的版本 ,我這里使用的是mysql-connector-java-8.0.16.jar
算了,csdn上面是收費的,我就放個網盤地址吧:
鏈接:https://pan.baidu.com/s/1gKGj3DgD5JxDl2njp5IOhA
提取碼:xetb
哦對了,有必要講一下基於這個配置的數據庫的建立:
在3306端口的數據庫新建數據庫名字 db1
然后新建表t_user,表中就id和name兩個字段,自己建一下就行了,
還有一個地方,如果你的數據庫不能基於IP訪問,請百度一下mysql打開遠程登錄。
然后點擊 mycat\bin目錄下的startup_nowrap.bat文件。
運行效果如下圖:
然后測試一下mycat的連接
然后,在mycat虛擬庫中執行sql
insert into t_user values(1,'abc');
看下物理庫和虛擬庫是否已經插入數據:
物理庫:
好了,至此就結束吧,如果你還不成功的話,就加我Q吧,632132852