windows下本地或者遠程連接MYSQL數據庫,報1130錯誤的解決方法

 

重裝MySQL,由於不知道重裝之前的root密碼,使用重裝之後的密碼連接Mysql數據,總報 ERROR 1130: host 'localhost' not allowed to connect to this MySQLserver,不能連接數據庫,猜測用戶權限和密碼的問題。

1、用root用戶登錄mysql數據庫

(1)停止MySQL服務,執行net stop mysql;

(2)在mysql的安裝路徑下找到配置文件my.ini,

   找到[mysqld]
   輸入:skip-grant-tables,保存

(3)重啓mysql服務,net start mysql;

(4)執行mysql -uroot -p,回車,再回車,即可進入mysql數據庫;

 

2、在本機登入mysql後,更改 “mysql” 數據庫裏的 “user” 表裏的 “host” 項,從”localhost”改稱'%'。

mysql>use mysql;

mysql>select host,user,password from user;

mysql>update user set host = '%' where user ='root';

mysql>flush privileges;    #刷新用戶權限表

mysql>select host,user,password  from user where user='root';

 

3、插入本地登錄的用戶

mysql>insert into user values('localhost', 'root', '', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y','','','','',0,0,0,0,'','');

此時本地連接的用戶localhost密碼爲空

 

4、修改root密碼

(1)用set password 方式修改root密碼遇到錯誤ERROR 1290 (HY000)

mysql> set password for root@'localhost'=PASSWORD('12345');
ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot exe
cute this statement

注意:以skip-grant-tables方式啓動mysql後,不能用直接用set password的方式修改root密碼,須註釋skip-grant-tables, 然後重啓服務,連接數據庫修改密碼

(2)用update方式修改root密碼正常

mysql> update user set password=password("123") where user="root";

mysql>flush privileges;

 (3)不連接數據庫,直接在cmd下修改密碼

mysqladmin -uroot -p舊密碼 password 新密碼,此種方式修改密碼也不能在以“skip-grant-tables“方式啓動mysql後進行

如:mysqladmin -uroot -p123456 password 1234

5、退出MySQL,在配置文件中註釋:skip-grant-tables,重啓mysql服務

6、本地重新連接mysql數據庫,輸入修改後的密碼,連接成功

 

成功的鮮花是那樣的美麗,誰會知道它的背後付出多少汗水

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章