There is no 'root'@'%' registered解決
把別人機器上的MYSQL中的一個數據庫導出來,生成了一個.sql的文件
www.2cto.com
在我的機器上導入這個.sql文件之後,在數據庫連接時出現了如下錯誤:
“There is no 'root'@'%' registered”
解決辦法:
首先上面的那句話的意思是,這裡沒有一個叫'root'@'%' 的用戶存在。這麼一說就明白許多了吧,因為你導入的目標MYSQL服務器裡面沒有這個用戶,所以在數據庫裡,我推薦使用MYSQL可視化管理工具Navicat,在相應的用戶管理上建立一個名為“%”的用戶,再將相應的權限(注意視圖和存儲過程的管理權限在默認情況下是不賦予的)分配給這個用戶即可。如果你是敲命令台的話,請自己去查MYSQL的API去吧。。總之做的事情和我上面說的一樣就可以了。
www.2cto.com
PS:關於這個'root'@'%' ,這個形式就是'A'@'B'的形式,它的意思是,密碼正確的前提下,IP或域名為B才可以使用MYSQL服務器上的用戶名為A的權限。而'root'@'%'的意思是,密碼正確的前提下任何人都可以使用MYSQL名為'root'用戶的權限,即最高管理員權限。
搞笑的解決辦法:
研究了一下發現是.sql文件上視圖和存儲過程的語句上出現了問題
.sql文件裡關於創建視圖是這樣寫的:
DROP VIEW IF EXISTS `視圖名稱`;
CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`%` SQL SECURITY DEFINER VIEW `視圖名稱` AS select ……
看到紅色部分的字了吧,把.sql文件裡所有視圖和存儲過程的紅字部分的%改成localhost(或者你機器的IP)之後,再導入這個.sql文件,就不會出錯了。