對于linux上MySQL的用戶信息修改問題,經常會困惑很多同學們,時間長久不操作,網上問題總結不全,總是花費大量的時間去整理再解決問題,所以今天我就給大家分享一下關于linux 上mysql的用戶密碼修改的操作,坑都給你們準備好,請大家注意喲。
1,登錄linux root用戶,獲取root權限
# my.cnf
vi /etc/my.cnf
末尾添加
skip-grant-tables
wq保存退出。
#更新mysql
service mysqld restart
2,登錄進入mysql控制臺
設置了免密登錄后,直接回車即可進入
mysql -u root -p
3,修改密碼(第一個坑)
遇到這種情況的時候:首先應該指定數據庫
ERROR 1054 (42S22): Unknown column 'password' in 'field list'
注意:在linux終端 mysql里面需要時刻記住命令最后加上分號。
4:再次開始修改密碼(第二個坑)
當遇到這個情況的時候,很明顯的就是password字段的問題
ERROR 1054 (42S22): Unknown column 'password' in 'field list'
錯誤的原因是 5.7版本下的mysql數據庫下已經沒有password這個字段了,password字段改成了authentication_string
update user set authentication_string=password('test123456') where User="root" and Host="localhost";
就這樣 密碼就修改成功。
5,退出刪掉 my.cnf 末行添加的內容
#quit 退出
vi /etc/my.cnf
去掉skip-grant-tables
wq, 保存退出
再次重啟mysql服務
service mysqld restart
6,對于新用戶授權問題
create database test_database
對于數據密碼問題,我個人建議直接對于密碼的等級和長度直接作出修改,防止后續需要密碼的時候,密碼過于簡單而報錯。
授權root用戶使用密碼****擁有。 test_databse數據庫的所有權限,并從任何主機連接的話。
grant all privileges on test_database.* to 'root'@'%' identified by '密碼' with grant option;
同樣也可以設置為部分授權
對于指定的數據只授權 select,update 的權限
grant select,update on test_database.* to root@localhost identified by '密碼';
總結:
對于mysql 數據庫的操作其實并不難,但是辦法總比困難多,我們在linux 上安裝和配置數據庫的時候都是遇到許多的問題,有些問題可能是對于linux 的不熟悉所導致,命令的使用和mysql的機制的不了解所造成,但是這些都是經驗所導致。
然而我們經常忽略的就是細心,認真編寫每一個命令,對于linux的操作都會提高效率,遵循linux終端命令的編寫和格式要求,切記每一個標點符號或者是中英文狀態的字符都會導致命令執行錯誤,認真細心很重要。
歡迎大家時刻關注我,我將不斷的給大家帶來更多的高效工作的技巧和經驗。