mysql 修改密碼問題 5.6,5.7 (配置方式的skip-grant-tables可能不行,推薦命令列方式)
mysql 修改密碼後,注意 FLUSH PRIVILEGES !
MYSQL服務無法啟動,服務沒有任何錯誤;解決方法
進入DOS介面,到MySQL資料夾下輸入mysqld --console
在命令列中輸入mysqld --install
不過我在安裝 5.7.27版本的時候怎麼flush都沒用。不知道為啥原始隨機密碼測試也是不行,my.cnf裡修改為 skip-grant-tables
然後修改密碼,還是不行。如下圖:
後面從配置中去掉skip-grant-tables(圖中看可能這種操作,不行) ,關閉mysql服務,單獨命令列啟動mysqld --skip-grant-tables,再開一個shell去連結,update mysql.user set authentication_string=password('123qwe') where user='root'; 執行後flush privileges;
重啟mysql 服務:service mysql start 。重新連結可以了,
但是報另外一個錯誤,提示要rest 密碼(前面擔心是不是root這個密碼不讓用,用的別的密碼,想改回來),執行alter user user() identified by 'xxxx' ; flush privileges; 後面就正常可以了。
參考:windows版本的https://blog.csdn.net/nicepuppy/article/details/80863836
解決Your password has expired. To log in you must change it using a client that supports expired passwords 辦法
開啟 命令列
- /usr/local/mysql/bin/mysqladmin-uroot-ppassword
提示輸入按照後的那個密碼
輸入完成後 提示輸入新的密碼
- Enterpassword:
- Newpassword:
Confirm new password:
完成
mysql> grant all privileges on *.* to 'root'@'your-host-ip' identified by 'your-mysql-password' with grant option;
mysql> flush privileges;
mysql> exit