蘭州網(wǎng)站seo費(fèi)用企業(yè)品牌推廣策劃方案
在執(zhí)行sql腳本時,沒有注意到sql腳本文件包含了對mysql 原始數(shù)據(jù)庫的操作,執(zhí)行了腳本。
腳本執(zhí)行成功之后,登錄或鏈接數(shù)據(jù)庫查看數(shù)據(jù)時報錯:
The user specified as a definer (‘mysql.infoschema’@‘localhost’) does not exist.
解決問題思路一:(無效)
登錄到mysql數(shù)據(jù)庫發(fā)現(xiàn),執(zhí)行 show databases 時報如上錯誤。
既然提示在localhost 上缺少 mysql.infoschema用戶,那就創(chuàng)建一個:
create user 'mysql.infoschema'@'localhost' identified by '123456';
但是執(zhí)行此命令時,會報錯:
Storage engine 'MyISAM' does not support system tables. [mysql.user]
后來又嘗試更改engine類型,繼續(xù)創(chuàng)建用戶,依然不行,此方法行不通。
解決問題思路二:(無效)
嘗試刪除mysql database; 從其他備份的數(shù)據(jù)庫中把mysql 復(fù)制過來。
drop database mysql;
無法刪除mysql,mysql下的某些表無法拒絕訪問。
解決問題思路三:(親測可用)
最終通過強(qiáng)制更新mysql數(shù)據(jù)庫解決,通過強(qiáng)制更新能夠修復(fù)mysql中的表關(guān)系。
更新過程中沒有提示,不知道什么時候更新完,我是過了二十分鐘才重新啟動的服務(wù)。
問題玩美解決。
最佳方案,不必重裝,原始數(shù)據(jù)都在,只是修復(fù)了mysql 庫中的表關(guān)系,以及用戶信息等。
net stop mysql;
mysqld --upgrade=FORCE;
net start mysql;
之所以執(zhí)行sql腳本是為了用mycat 實現(xiàn)分庫分表,附上mycat 相關(guān)命令:
安裝mycat前需要先安裝jdk和mysql。mycat1.6版本建議使用的jdk是1.7以上版本,mysql建議使用5.6版本(我這里使用是MySQL8)。
安裝完jdk和mysql后,進(jìn)入mycat解壓目錄下的bin目錄。
在打開的cmd命令行窗口中,執(zhí)行如下命令安裝mycat(注意需要管理員賬戶登錄,如果不是請使用管理員身份運(yùn)行cmd打開命令行窗口,執(zhí)行如下指令會提示報錯):
mycat.bat install
可以使用如下命令啟動mycat服務(wù)
mycat.bat start
啟動后可以通過如下命令查看mycat的運(yùn)行狀態(tài):
mycat.bat status
可以使用如下命令停止mycat服務(wù)
mycat.bat stop