今天買了一台阿里雲服務器,Centos7.3系統,環境是LAMP。學生價9.8元是真的很實惠了。然后想修改一下mysql服務器的密碼(mysql版本5.7),結果操作失誤,密碼給忘記了,導致新舊密碼都不能登陸服務器,真是蛋疼。不過最終依靠自己的努力還是解決了問題。
錯誤案例演示
先來看一下我剛開始是怎么出錯的(這是錯誤案例,大家不要照着這個例子敲,這里先演示了如何出錯的,最后再修改):
1、先登陸服務器,use數據庫“mysql”。然后修改user表里面的數據。畢竟mysql的密碼是存在這個表里面的。
2、然后開始修改密碼
結果報了一個錯誤,仔細一看是說mysql服務器是以安全模式啟動的,因此我們不能修改密碼,這個比較好解決,把mysql的保護關閉即可
設置為“0”表示關閉mysql的保護,開啟的話就設置為“1”即可、
3、現在可以修改密碼啦
(這是錯誤的語法,不要這樣做,我是為了演示)
然后再flush一下
結果成功了,我高興的退出服務器重新登錄,發現新密碼不能登錄服務器,真是頭大。后來舊密碼也不能登錄服務器了,此時崩潰了。
成功案例演示
上面的例子導致我新舊密碼都不能登陸服務器,后來沒辦法只能無密碼登陸服務器然后再修改密碼啦。不過問題出錯的原因是修改密碼的語法是錯誤的,雖然執行成功了,但是並沒有真的修改密碼成功,並且舊密碼也失效了。既然知道了出錯原因,接下來就好辦了。
無密碼登陸mysql演示
1、修改/etc/my.cnf文件加入“--skip-grant-tables”
然后重新啟動mysql
結果出錯了,意外,趕緊查看日志
發現剛剛加入的那句話出現了問題,想想不對呀,后來發現mysql5.7加入的這句話是“skip-grant-tables”。少了前面的兩個橫杠
繼續修改
再啟動
啟動成功
然后無密碼登陸
(這個才是真正修改密碼的語法)
然后再刷新一下
最后退出mysql服務器,這個時候就可以使用新密碼登錄系統了。
總結:mysql5.7與之前的版本比較出現了一些變化,我們不懂要去網上問一下。最后mysql5.7修改密碼的語法一定要記清楚。
有時候剛剛安裝完MySQL服務要求我們立即修改密碼:
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456'
第一次編譯安裝mysql怎么修改密碼?
今天安裝mysql的這個版本“mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz”。第一次安裝成功后修改密碼是不能使用上面的update語句來修改密碼,因為系統強制要求修改密碼才可以選mysql庫然后再update語句。所以就不能使用上面的語句來修改密碼了,下面是這個第一次安裝mysql的密碼修改方式: