不知道大家之前對(duì)類似如何更改MySQL數(shù)據(jù)庫的密碼的文章有無了解,今天我在這里給大家再簡(jiǎn)單的講講。感興趣的話就一起來看看正文部分吧,相信看完如何更改mysql數(shù)據(jù)庫的密碼你一定會(huì)有所收獲的。
青銅峽ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書未來市場(chǎng)廣闊!成為成都創(chuàng)新互聯(lián)公司的ssl證書銷售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:028-86922220(備注:SSL證書合作)期待與您的合作!
環(huán)境介紹:
操作系統(tǒng):Red Hat linux6
數(shù)據(jù)庫版本:Mysql5.7
注:MySQL5.7在初始安裝后,會(huì)生成隨機(jī)初始密碼,并在/var/log/mysqld.log中有記錄,可以通過head命令查看,找password關(guān)鍵字即可找到隨機(jī)初始密碼。
設(shè)置密碼方法如下:
方法1:用update直接編輯user表
mysql -u root /*進(jìn)入mysql*/ mysql>use mysql /*進(jìn)入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,所以把a(bǔ)uthentication_string改為password即可設(shè)置密碼。 mysql>FLUSH PRIVILEGES; /*告訴云服務(wù)器重載授權(quán)表*/
退出mysql,編輯/etc/my.cnf文件,注釋skip-grant-tables的內(nèi)容,在重啟服務(wù)使用賬戶密碼登錄即可。
方法2:mysqladmin命令(當(dāng)然如果你的mysqladmin連接不上mysql server,或者你沒有辦法執(zhí)行mysqladmin,這種方法就是無效的)
mysqladmin -u root password "newpass" /*設(shè)置的密碼為newpass*/
如果要修改用戶名密碼
方法3:為賬戶賦予密碼用 set password命令
mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpass');
方法4:如果你沒有以匿名用戶連接,省略FOR子句便可以更改自己的密碼:
mysql> SET PASSWORD = PASSWORD('newpass');
方法5:你還可以在全局級(jí)別使用GRANT USAGE語句(在.)來指定某個(gè)賬戶的密碼而不影響賬戶當(dāng)前的權(quán)限:
mysql> GRANT USAGE ON *.* TO 'root'@'%' IDENTIFIED BY 'newpass';
補(bǔ)充:創(chuàng)建新賬戶時(shí)建立密碼
mysql> INSERT INTO user (Host,User,Password) VALUES('%','oldboy',PASSWORD('newpass')); mysql> FLUSH PRIVILEGES;
當(dāng)你使用SET PASSWORD、INSERT或UPDATE指定賬戶的密碼時(shí),必須用PASSWORD()函數(shù)對(duì)它進(jìn)行加密。(唯一的特例是如果密碼為空,你不需要使用PASSWORD())。需要使用PASSWORD()是因?yàn)閡ser表以加密方式保存密碼,而不是明文。
mysql> INSERT INTO user (Host,User,Password) VALUES('%','oldboy','newpass'); mysql> FLUSH PRIVILEGES;
結(jié)果是密碼'newpass'保存到user表后沒有加密。當(dāng)oldboy使用該密碼連接云服務(wù)器時(shí),值被加密并同保存在user表中的進(jìn)行比較。但是,保存的值為字符串'newpass',因此比較將失敗,云服務(wù)器拒絕連接:
Access denied
修改密碼方法如下:
方法1: 如果忘記root密碼,可以通過上面的設(shè)置密碼第一種方法進(jìn)行修改。
1.先修改配置文件/etc/my.cnf ,在[mysql]下面添加 skip-grant-tables 參數(shù),重啟服務(wù)。這時(shí)不用輸入密碼就能登錄mysql
2.進(jìn)入 mysql庫,輸入use mysql,用update 修改mysql的user表
3.FLUSH PRIVILEGES; /刷新權(quán)限/,然后退出mysql
4.將my.cnf配置文件中的 skip-grant-tables 參數(shù)注銷或刪除,在重啟mysql服務(wù)即可
方法2: 使用mysqladmin
mysqladmin -u root -p password "newpass2" /*這時(shí)候回車提示輸入的密碼是舊密碼*/
mysqladmin -u root -pnewpass password "newpass2" /*如果記得舊密碼,用這種方式*/
當(dāng)你使用navicat mysql工具連接mysql服務(wù)時(shí)報(bào)err1130錯(cuò)誤,原因及解決方法如下:
1.檢查下防火墻是否關(guān)閉 service iptables stop
2.改表法:檢查是否是因?yàn)橘~號(hào)不支持遠(yuǎn)程,只能localhost。
登錄本地?cái)?shù)據(jù)庫,進(jìn)入mysql用戶use mysql;
將user數(shù)據(jù)表里面的對(duì)應(yīng)用戶的host列中的localhost改為%即可。
SQL:
mysql> select host,user from user order by host desc,user desc; ---檢查用戶的host
mysql>update user set host='%' where user='root'; --- 把localhost改為%
在MySQL中’%’表示可以在任何主機(jī)上登錄MySQL數(shù)據(jù)庫,那為什么還需要明確創(chuàng)建登錄主機(jī)為localhost的用戶呢?
這涉及到MySQL安裝時(shí)的初始化用戶,匿名用戶以及連接驗(yàn)證策略等,下面進(jìn)行深入的分析。
轉(zhuǎn)載出處:
1.深入分析MySQL ERROR 1045 (28000)
看完如何更改mysql數(shù)據(jù)庫的密碼這篇文章,大家覺得怎么樣?如果想要了解更多相關(guān),可以繼續(xù)關(guān)注我們的行業(yè)資訊板塊。