您好,登錄后才能下訂單哦!
不知道大家之前對類似如何更改mysql數據庫的密碼的文章有無了解,今天我在這里給大家再簡單的講講。感興趣的話就一起來看看正文部分吧,相信看完如何更改mysql數據庫的密碼你一定會有所收獲的。
環境介紹:
操作系統:Red Hat linux6
數據庫版本:Mysql5.7
注:MySQL5.7在初始安裝后,會生成隨機初始密碼,并在/var/log/mysqld.log中有記錄,可以通過head命令查看,找password關鍵字即可找到隨機初始密碼。
設置密碼方法如下:
方法1:用update直接編輯user表
mysql -u root /*進入mysql*/ mysql>use mysql /*進入mysql用戶*/ mysql>update user set authentication_string=password('newpass'),password_expired='N where user='root'; /本sql適用于mysql5.7之后的版本(包括5.7),5.7之前的版本不是authentication_string,而是Password,所以把authentication_string改為password即可設置密碼。 mysql>FLUSH PRIVILEGES; /*告訴云服務器重載授權表*/
退出mysql,編輯/etc/my.cnf文件,注釋skip-grant-tables的內容,在重啟服務使用賬戶密碼登錄即可。
方法2:mysqladmin命令(當然如果你的mysqladmin連接不上mysql server,或者你沒有辦法執行mysqladmin,這種方法就是無效的)
mysqladmin -u root password "newpass" /*設置的密碼為newpass*/<br/>如果要修改用戶名密碼
方法3:為賬戶賦予密碼用 set password命令
mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpass');
方法4:如果你沒有以匿名用戶連接,省略FOR子句便可以更改自己的密碼:
mysql> SET PASSWORD = PASSWORD('newpass');
方法5:你還可以在全局級別使用GRANT USAGE語句(在.)來指定某個賬戶的密碼而不影響賬戶當前的權限:
mysql> GRANT USAGE ON *.* TO 'root'@'%' IDENTIFIED BY 'newpass';
補充:創建新賬戶時建立密碼
mysql> INSERT INTO user (Host,User,Password) VALUES('%','oldboy',PASSWORD('newpass')); mysql> FLUSH PRIVILEGES;
當你使用SET PASSWORD、INSERT或UPDATE指定賬戶的密碼時,必須用PASSWORD()函數對它進行加密。(唯一的特例是如果密碼為空,你不需要使用PASSWORD())。需要使用PASSWORD()是因為user表以加密方式保存密碼,而不是明文。
mysql> INSERT INTO user (Host,User,Password) VALUES('%','oldboy','newpass'); mysql> FLUSH PRIVILEGES;
結果是密碼'newpass'保存到user表后沒有加密。當oldboy使用該密碼連接云服務器時,值被加密并同保存在user表中的進行比較。但是,保存的值為字符串'newpass',因此比較將失敗,云服務器拒絕連接:
Access denied
修改密碼方法如下:
方法1: 如果忘記root密碼,可以通過上面的設置密碼第一種方法進行修改。
1.先修改配置文件/etc/my.cnf ,在[mysql]下面添加 skip-grant-tables 參數,重啟服務。這時不用輸入密碼就能登錄mysql
2.進入 mysql庫,輸入use mysql,用update 修改mysql的user表
3.FLUSH PRIVILEGES; /刷新權限/,然后退出mysql
4.將my.cnf配置文件中的 skip-grant-tables 參數注銷或刪除,在重啟mysql服務即可
方法2: 使用mysqladmin
mysqladmin -u root -p password "newpass2" /*這時候回車提示輸入的密碼是舊密碼*/
mysqladmin -u root -pnewpass password "newpass2" /*如果記得舊密碼,用這種方式*/
當你使用navicat mysql工具連接mysql服務時報err1130錯誤,原因及解決方法如下:
1.檢查下防火墻是否關閉 service iptables stop
2.改表法:檢查是否是因為賬號不支持遠程,只能localhost。
登錄本地數據庫,進入mysql用戶use mysql;
將user數據表里面的對應用戶的host列中的localhost改為%即可。
SQL:
mysql> select host,user from user order by host desc,user desc; ---檢查用戶的host<br/>mysql>update user set host='%' where user='root'; --- 把localhost改為%
在MySQL中’%’表示可以在任何主機上登錄MySQL數據庫,那為什么還需要明確創建登錄主機為localhost的用戶呢?
這涉及到MySQL安裝時的初始化用戶,匿名用戶以及連接驗證策略等,下面進行深入的分析。
轉載出處:
1.深入分析MySQL ERROR 1045 (28000)
看完如何更改mysql數據庫的密碼這篇文章,大家覺得怎么樣?如果想要了解更多相關,可以繼續關注我們的行業資訊板塊。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。