今天發現一個奇怪的問題把mysql重新安裝之后發現再去連接mysql提示1045錯誤了,無法正常連接mysql數據庫了,下面我們一起來看此問題解決辦法.
之前因為沒有正常關機 mysql 服務無法正常啟動,后來重新安裝了之后還是不能進入root賬戶提示1045錯誤.
解決方法:
1、停止服務,2、修改my.ini,找到【mysqld】,在其下加上一行 skip-grant-tables,3、啟動mysql服務.
這樣就可以進入了,進入之后修改 mysql庫下面的user 表里面的root 密碼改為空,然后去掉 skip-grant-tables 重啟mysql,把之前的庫都拷貝到新的數據庫路徑,網站即可正常訪問.
如果還是不行可參考下面方法嘗試一下,根據網上的介紹,通過命令,代碼如下:
mysql> use mysql; mysql> select host,user from user;
得到如下結果 +---------------+------+ | host | user | +---------------+------+ | localhost | root | +---------------+------+ 5 rows in set (0.00 sec)
發現root用戶僅允許本地(localhost)登錄,如果要遠程登錄該mysql服務器的話,就需要新建一個普通權限的用戶,新建用戶使用如下命令:
mysql> grant select,update,insert,delete on mas.* to duan@localhost identified by "123456";
這句命令的意思是:新建用戶duan,并且只允許該用戶在本地(localhost)登錄,密碼是123456,并且賦予它對mas庫中所有表select,update,insert的權限,我們在這有一個mas庫,所以用mas.*代表mas庫下的所有表。現在該duan用戶,已經可以登錄mysql了,但是也還是只能本地登錄.
若要duan用戶可以遠程登錄mysql,則還需要如下命令:
mysql> update user set host = '%' where user = 'duan';
現在我們再查看mysql的管理庫:
- mysql> select host,user from user; +-----------+------+ | host | user | +-----------+------+ | % | duan | | localhost | root | +-----------+------+ 5 rows in set (0.00 sec) //Vevb.com
這時,在MySQL-Front上新建連接,輸入連接名,遠端的Linux的IP地址,輸入用戶名duan和密碼123456,選擇連接端口,mysql默認的是3306,還是連接不上.
經過多番查找,發現還需要執行如下代碼:
mysql> flush privileges;
把緩存flush后,終于大功告成了,因為使用update語句修改用戶記錄,還需要FLUSH語句告訴服務器重載授權表,當你使用GRANT和REVOKE語句時,表自動重載,而你直接修改授權表時不是,所以更簡便的方法是,代碼如下:
mysql> grant select,update,insert,delete on mas.* to duan@“%” identified by "123456";
新聞熱點
疑難解答