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 [email protected]'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資料庫,輸入修改後的密碼,連線成功