Windows下MySql5.7.17更改密碼時出錯“ERROR 1054 (42S22): Unknown column ‘password’ in ‘field list’"

今天在windows下配置了Mysql5.7.17,在修改密碼的過程中遇到了錯誤提示ERROR 1054 (42S22): Unknown column ‘password’ in ‘field list’,查找了很多解決方案,下面的方法完美的解決了我的問題:
1. 配置環境變量Path:將mysql的bin所在路徑添加到Path中
2. 把安裝目錄的my-default.ini文件刪掉,新建一個my.ini,添加下面的代碼到my.ini文件中

[mysql]
# 設置mysql客戶端默認字符集
default-character-set=utf8 
[mysqld]
skip-grant-tables
#設置3306端口
port = 3306 
# 設置mysql的安裝目錄
basedir=D:\MySql\mysql-5.7.17-winx64\mysql-5.7.17-winx64
# 設置mysql數據庫的數據的存放目錄
datadir=D:\MySql\mysql-5.7.17-winx64\mysql-5.7.17-winx64\data
# 允許最大連接數
max_connections=200
# 服務端使用的字符集默認爲8比特編碼的latin1字符集
character-set-server=utf8
# 創建新表時將使用的默認存儲引擎
default-storage-engine=INNODB 

上面的目錄請參考自己的文件路徑。
3. my.ini文件中的skip-grant-tables使登錄直接跨過了安全檢查。接着在cmd下輸入
mysql進入mysql>,在mysql>下輸入UPDATE mysql.user set password=PASSWORD('newpassword') WHERE User='root'; 進行密碼更改。但在此版本的mysql中,會報錯,錯誤如下ERROR 1054 (42S22): Unknown column ‘password’ in ‘field list’;這是因爲原本的password字段替換成了authentication_string,如果出現這個錯誤提示,就需要使用下列方式:update mysql.user set authentication_string=password('newpassword') where user='root';
4. 此時已經可以用新密碼登錄了,然後將my.ini文件中的skip-grant-tables註釋掉,在cmd下重啓mysql服務,可以用net stop mysql先停止服務,再net start mysql啓動服務來重啓,重啓完成,輸入mysql -u root -p來進行登錄,over。

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