0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

MySQL忘記root密碼解決方案

馬哥Linux運(yùn)維 ? 來源:cnblogs ? 2024-04-23 16:08 ? 次閱讀

場景一:重置root密碼

mysql登錄密碼為password()算法加密,解密成本太高,以下為通用方案;

原理:mysql提供了特殊啟動(dòng)方式,即跳過權(quán)限表驗(yàn)證,啟動(dòng)后,登錄不需要提供密碼;

登錄后,即可修改mysql數(shù)據(jù)庫的user表,重置密碼,然后刷新權(quán)限,重啟mysql服務(wù)即可;

注意:此時(shí)mysql服務(wù)將面臨高風(fēng)險(xiǎn),請?jiān)诤线m時(shí)間執(zhí)行;

#停止正在運(yùn)行的mysql服務(wù)

service mysqld stop

#以--skip-grant-tables選項(xiàng)啟動(dòng)服務(wù),跳過權(quán)限表驗(yàn)證,有2種方式

方式1:指定運(yùn)行選項(xiàng),只在本次啟動(dòng)生效

./bin/mysqld_safe --skip-grant-tables --user=root &
如果本機(jī)沒有mysqld_safe服務(wù),運(yùn)行mysqld效果相同

方式2:修改配置文件,使用service、systemctl啟動(dòng)均生效

修改配置文件my.cnf,添加 skip-grant-tables
my.cnf可能存在多個(gè),請使用  sudo mysql --help | grep my.cnf   或   mysql --help | grep 'Default options' -A 1 確認(rèn)加載順序

#root賬號(hào)登錄mysql,此時(shí)不需要提供密碼
mysql -uroot


#切換到mysql數(shù)據(jù)庫,登錄賬號(hào)與權(quán)限在此數(shù)據(jù)庫中
use mysql;


#查看mysql版本
select version();


#查看當(dāng)前賬戶信息,根據(jù)mysql版本執(zhí)行
#5.7+版本密碼為authentication_string(生效),password;
#5.7-版本密碼為password 
#user=用戶名,host=登錄IP,即允許該賬戶登錄的IP地址,每個(gè)IP一條user表記錄,%表示任意IP
select user,host,authentication_string,password from user where user='root';


#5.7+設(shè)置密碼
update user set authentication_string=password('password') where user='root';
--and Host='localhost';


#5.7-設(shè)置密碼
update mysql.user set password=password('password') where user='root';
--host='localhost';


#5.7+支持2個(gè)密碼字段,直接設(shè)置2個(gè),生效為authentication_string
update user set authentication_string=password('password'),password=password('password') where user='root' ;
--and Host='localhost';


#刷新權(quán)限表
flush privileges;


#退出mysql連接
quit;


#重啟mysql服務(wù)
service mysqld restart

場景二:增加賬號(hào)與授權(quán)

以上--skip-grant-tables模式不驗(yàn)證權(quán)限,同時(shí)無法增加賬號(hào)授權(quán),所以增加賬號(hào)的登錄IP,需要以正常模式啟動(dòng)登錄


#密碼登錄重啟后的mysql服務(wù)
mysql -u root -p
 
#切換mysql數(shù)據(jù)庫,賬號(hào)和權(quán)限在此數(shù)據(jù)庫
use mysql;
 
#增加賬號(hào)授權(quán)
grant all privileges on *.* to "root"@"ip" identified by "password" with grant option;
 
#刷新權(quán)限表
flush privileges;
 
#退出mysql連接
quit;
 
#無需重啟服務(wù)

場景三:修改登錄密碼

1> 更新mysql.user表,需要登錄MySQL執(zhí)行,需要刷新權(quán)限列表生

mysql> use mysql; #5.7前后版本密碼字段不一致,且 user 表同時(shí)存在2個(gè)字段
# mysql5.7之前
mysql> update user set password=password('123456') where user='root' and host='localhost';
# mysql5.7之后
mysql> update user set authentication_string=password('123456') where user='root' and host='localhost';
mysql> flush privileges; #刷新權(quán)限列表

2> 用set password命令,需要登錄MySQL執(zhí)行,自動(dòng)刷新權(quán)限列表

語法:set password for '用戶名'@'域'=password(‘密碼’)
mysql> set password for 'root'@'localhost'=password('123456');

3> alter user命令,需要登錄MySQL執(zhí)行,自動(dòng)刷新權(quán)限列表

語法:ALTER USER '用戶名'@'域' IDENTIFIED BY 'xxxx'; 
#初始化時(shí)root賬號(hào)只有l(wèi)ocalhost
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';

4> grant命令,需要登錄MySQL執(zhí)行,自動(dòng)刷新權(quán)限列表

語法:GRANT 權(quán)限列表(逗號(hào)分隔) ON 數(shù)據(jù)庫.數(shù)據(jù)表 TO '用戶'@'域' IDENTIFIED BY '密碼';
#grant語句自動(dòng)創(chuàng)建用戶以及設(shè)置密碼
#權(quán)限支持 create、update、select、lete、drop、execute等,也可以指定 all privileges 授權(quán)所有權(quán)限
#grant語句最后可以指定 WITH GRANT OPTION 指定用戶可以將權(quán)限傳遞授權(quán)給其他用戶。
#數(shù)據(jù)庫與數(shù)據(jù)表支持 * 指定全部,如 testdb.* 或 *.*,其他情況只能一條授權(quán)一個(gè)數(shù)據(jù)表
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.11.31' IDENTIFIED BY 'Mysql.pass.123' WITH GRANT OPTION;

5> mysqladmin,無需登錄MySQL執(zhí)行,自動(dòng)刷新權(quán)限列表

語法:mysqladmin -u用戶名 -p舊的密碼 password 新密碼
#該方式為明文傳輸密碼,不安全
[root@localhost ~]# mysqladmin -uroot -p123456 password 1234abcd
mysqladmin: [Warning] Using a password on the command line interface can be insecure.
New password: 
Confirm new password: 
Warning: Since password will be sent to server in plain text, use ssl connection to ensure password safety.

審核編輯:黃飛

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • MySQL
    +關(guān)注

    關(guān)注

    1

    文章

    849

    瀏覽量

    27571
  • root
    +關(guān)注

    關(guān)注

    1

    文章

    86

    瀏覽量

    21628

原文標(biāo)題:MySQL忘記root密碼解決方案

文章出處:【微信號(hào):magedu-Linux,微信公眾號(hào):馬哥Linux運(yùn)維】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 0人收藏

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    如何在Linux中重置忘記root密碼

    忘記了 Linux root 密碼?不用擔(dān)心!本文提供了簡單易懂的說明,可以安全地重置和修改 root 密碼。
    的頭像 發(fā)表于 12-04 14:51 ?3070次閱讀
    如何在Linux中重置<b class='flag-5'>忘記</b>的<b class='flag-5'>root</b><b class='flag-5'>密碼</b>

    MySQL root密碼忘記怎么辦?

    -S /data/3306/mysql.sock 登錄數(shù)據(jù)庫2. 更改密碼mysql> update mysql.user set password=password('123456
    發(fā)表于 06-22 17:54

    分享linuxwindows mysql忘記root密碼的解決方法

    圖文詳解linuxwindows mysql忘記root密碼解決方案
    發(fā)表于 03-06 12:59

    Mysql數(shù)據(jù)庫忘記密碼怎么辦如何修改密碼

    Mysql數(shù)據(jù)庫忘記密碼,修改密碼的方法,超詳細(xì)
    發(fā)表于 06-10 12:00

    不知道root密碼怎么修改

    今天一朋友問不知道root 密碼怎么修改。他這個(gè)系統(tǒng)是海思平臺(tái)的嵌入式Linux系統(tǒng)。然后嘗試了修改并進(jìn)入系統(tǒng)。嵌入式Linux中的root 密碼
    發(fā)表于 11-05 08:33

    windowsxp忘記密碼

    windowsxp忘記密碼 計(jì)算機(jī)安裝的是Windows XP操作系統(tǒng),不慎忘記了系統(tǒng)登錄用戶“zhangbq”的密碼,而且在安裝時(shí)也沒有做相應(yīng)的應(yīng)急盤,現(xiàn)把兩種方法介紹
    發(fā)表于 01-08 09:55 ?8802次閱讀

    Centos-root密碼忘記解決辦法

    linux系統(tǒng)丟失root密碼,進(jìn)入啟動(dòng)界面即可輕松解決。
    發(fā)表于 10-29 11:44 ?0次下載

    忘記了Linux系統(tǒng)的root密碼,該怎么辦?

    很多朋友經(jīng)常會(huì)忘記Linux系統(tǒng)的root密碼,linux系統(tǒng)忘記root密碼的情況該怎么辦呢?
    的頭像 發(fā)表于 10-15 16:49 ?1.3w次閱讀

    工控機(jī)忘記密碼的解決方法

    本期上海研強(qiáng)給大家分享的是工控機(jī)忘記密碼解決方案,希望看完本篇文章您能對(duì)工控機(jī)有一個(gè)全新的認(rèn)識(shí)!
    發(fā)表于 08-11 16:41 ?7211次閱讀

    不知道嵌入式Linux系統(tǒng)下的root密碼,修改新密碼并進(jìn)入系統(tǒng)

    今天一朋友問不知道root 密碼怎么修改。他這個(gè)系統(tǒng)是海思平臺(tái)的嵌入式Linux系統(tǒng)。然后嘗試了修改并進(jìn)入系統(tǒng)。嵌入式Linux中的root 密碼
    發(fā)表于 11-01 17:59 ?14次下載
    不知道嵌入式Linux系統(tǒng)下的<b class='flag-5'>root</b><b class='flag-5'>密碼</b>,修改新<b class='flag-5'>密碼</b>并進(jìn)入系統(tǒng)

    忘記Mysql用戶密碼怎么辦

    如果能登錄,直接就可以修改密碼,但是當(dāng)我們忘記mysql數(shù)據(jù)庫密碼時(shí)我們就無法正常進(jìn)入數(shù)據(jù)庫,也就無法修改密碼,那么這時(shí)該怎么修改
    的頭像 發(fā)表于 02-27 14:42 ?1934次閱讀
    <b class='flag-5'>忘記</b><b class='flag-5'>Mysql</b>用戶<b class='flag-5'>密碼</b>怎么辦

    MySQL忘記root密碼解決方案

    密碼,可能會(huì)導(dǎo)致無法正常管理MySQL數(shù)據(jù)庫。 這篇文章將提供詳盡、詳實(shí)、細(xì)致的解決方案,幫助解決MySQL忘記
    的頭像 發(fā)表于 11-21 11:04 ?926次閱讀

    mysql密碼忘了怎么重置

    mysql密碼忘了怎么重置? MySQL是一種開源的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),密碼用于保護(hù)數(shù)據(jù)庫的安全性和保密性。如果你忘記
    的頭像 發(fā)表于 12-27 16:51 ?7328次閱讀

    MySQL密碼忘記了怎么辦?MySQL密碼快速重置方法步驟命令示例!

    MySQL密碼忘記了怎么辦?MySQL密碼快速重置方法步驟命令示例! MySQL是一種常用的關(guān)系
    的頭像 發(fā)表于 01-12 16:06 ?1014次閱讀

    Jtti:MySQL初始化操作如何設(shè)置root密碼

    MySQL初始化時(shí),可以通過以下步驟設(shè)置root密碼: 打開命令行工具,使用以下命令啟動(dòng)MySQL服務(wù): ? sudo service mysql
    的頭像 發(fā)表于 08-08 16:45 ?747次閱讀

    電子發(fā)燒友

    中國電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會(huì)員交流學(xué)習(xí)
    • 獲取您個(gè)性化的科技前沿技術(shù)信息
    • 參加活動(dòng)獲取豐厚的禮品