MySQL root用戶沒法登陸緣由及解決辦法

MySQL root密碼正確,卻怎麼也bai沒法du從本地登陸MySQL
登陸提示
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
可能緣由是mysql庫中bai的user表缺乏一個root指向host:localhost的數據項,只有一個root指向host:主機名的數據項,故怎麼也沒法利用root帳戶登陸MySQL。
解決辦法
一、 首先kill掉MySQL進程
二、 在啓動mysql的參數中加入 --skip-grant-tables
這時無密碼就能夠登陸mysql了
三、 修復root帳戶丟失的數據項
這裏有兩種解決方案:
  
第一種是由於root帳戶初始的時候有3條記錄,包含root對應localhost,hostname,127.0.0.1三條帳戶數據,咱們能夠update host爲其餘兩項中一項爲localhost便可。
  
第二種是直接insert一條記錄,host爲localhost便可
  即便root的host包含了主機名,127.0.0.1那麼依然是沒法正常登陸的,這裏必需要有localhost的host才行。
  
若是上面辦法仍是沒法正常登陸咱們可嘗試另外一種辦法
在本地用mysql命令直接回車能夠進入mysql,可是裏面只有test和information_schema數據庫,沒有mysql等數據庫,使用use mysql報以下錯:
mysql> use mysql
  ERROR 1044 (42000): Access denied for user "@'localhost' to database 'mysql'
  意思是說沒有指定user,沒有權限訪問數據庫mysql。
  那麼用root登陸呢,輸入正確的密碼報以下錯:
  [root@228827 ~]# mysql -uroot -p123456
  ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
  密碼正確的狀況下,mysql數據庫已經禁止了root用戶在本地的登陸權限了























mysql

相關文章
相關標籤/搜索