MyCAT上新增一個庫及MyCAT報錯1184的問題及解決
背景介紹
前兩天因業(yè)務(wù)需要,需在現(xiàn)有的一套MyCAT下新增一個業(yè)務(wù)系統(tǒng)節(jié)點,已知當(dāng)前MyCAT上有庫aaa,bbb,ccc,現(xiàn)要新增庫iris,以便在mycat-admin上進行跨庫查詢業(yè)務(wù)。
步驟一
第一步,準備一臺服務(wù)器,安裝好新業(yè)務(wù)需要的數(shù)據(jù)庫服務(wù),新建一個db。
建好后,登錄到db里,如下:
我的新業(yè)務(wù)所在服務(wù)器ip是 1.1.1.56, db是 iris :
第二步,在mycat服務(wù)器上conf目錄上,修改配置文件內(nèi)容,修改對象如下:
要把這個服務(wù)器加入到Mycat節(jié)點中,需要修改的地方有四個:
①schema.xml文件中,新增<schema>…</schema>內(nèi)容
<schema name="iris" checkSQLschema="false" sqlMaxLimit="5000">
這里的”iris“,是自定義的邏輯庫的名字,也就是在mycat上查詢的時候,顯示出來的庫名,可以跟數(shù)據(jù)庫節(jié)點里”create database iris“這里的db名不一樣,create的db也就是圖二的dataNode的庫名。
②schema.xml文件中,新增<dataNode … />內(nèi)容
<!-- iris_dataNode --> <dataNode name="iris_dn1" dataHost="iris_Host" database="iris" />
name是自定義的名稱,datahost也自定義,只要下面的內(nèi)容中保持一致就可以。
database=“iris",指的就是”create database iris“這里的db,保持一致即可,有的情況是分庫表、有多個節(jié)點,每個節(jié)點上的db可能名字分別是iris_db1、iris_db2……iris_dbn,那么這里就分別是database=iris_db1、iris_db2。
③schema.xml文件中,新增<dataHost>……</dataHost>內(nèi)容
<!-- iris_dataHost --> <dataHost name="iris_Host" maxCon="1000" minCon="10" balance="0" writeType="0" dbType="mysql" dbDriver="native"> <heartbeat>select user()</heartbeat> <writeHost host="iris-m1" url=“1.1.1.56:3307" user="mycat" password="123456"> </writeHost> </dataHost>
上面dataHost name="iris_Host"的iris_host對應(yīng)步驟②中datahost的名稱;
writeHost host="iris-m1”,自定義的主機名。
在節(jié)點db iris中授權(quán)mycat可以訪問節(jié)點服務(wù)器的時候,新建用戶mcyat,密碼為12345 。
④修改文件server.xml,如下:
邏輯庫aaa,bbb,ccc是原來mycat中已存在的庫,iris為新增,直接添加在其后即可。
同時增加了如下內(nèi)容:
表示額外新增兩個mycat用戶,用于從mycat服務(wù)器訪問iris庫時權(quán)限分配,一個只讀用戶(readOnly),一個是可讀寫。
不添加這段,也可以用上面mycatadmin和之前授權(quán)的mycat用戶訪問數(shù)據(jù)庫iris。
步驟二
重啟mycat服務(wù),或者relaod MyCAT配置文件
這四個地方確保正確修改后,就可以在管理端口下 reload mycat的配置文件,或者重啟服務(wù)。
重新登錄mycat,就可以看到新增的庫了。
問題
MyCAT重啟后,可以正??吹綆靑ris與aaa,bbb等庫一起,但是無法訪問,報錯1184.
mycat重啟后,正常看到新增的庫iris了,但是需要進行查詢時,發(fā)現(xiàn)報錯如下:” 1184- “
原因主要有
- ①用戶名/密碼不對
- ②授權(quán)不對
- ③實際的庫名和datanode不匹配
解決辦法
- 問題一:
- 可嘗試重新在節(jié)點db進行授權(quán),確保密碼正確,再試一次連接訪問:
- 問題二:
- show grants查看實際授權(quán)情況,或者直接重新授權(quán) all privileges確認訪問狀態(tài);
- 問題三:
- 再一次詳細檢查各個修改的配置內(nèi)容,
如、這里的database,是否與 在1.1.1.56服務(wù)器上數(shù)據(jù)庫上創(chuàng)建的db名一樣。
下圖這里的database名稱,是節(jié)點服務(wù)器上數(shù)據(jù)庫里面實際的數(shù)據(jù)庫名稱:
其次,檢查用戶標簽中的庫名
下圖中的庫名是 mycat上邏輯庫的名稱,不是實際 create 的db的名字。
也就是下圖中的schema
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
mysql自動定時備份數(shù)據(jù)庫的最佳方法(windows服務(wù)器)
網(wǎng)上有很多關(guān)于window下Mysql自動備份的方法,可是真的能用的也沒有幾個,有些說的還非常的復(fù)雜,難以操作,這里腳本之家小編為大家分享與整理了幾個軟件方便大家使用2016-11-11mysql 行轉(zhuǎn)列和列轉(zhuǎn)行實例詳解
這篇文章主要介紹了mysql 行轉(zhuǎn)列和列轉(zhuǎn)行實例詳解的相關(guān)資料,需要的朋友可以參考下2017-03-03如何將Excel文件導(dǎo)入MySQL數(shù)據(jù)庫
這篇文章主要為大家詳細介紹了Excel文件導(dǎo)入MySQL數(shù)據(jù)庫的具體方法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-07-07