精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

MySQL忘記root密碼解決方案

馬哥Linux運維 ? 來源:cnblogs ? 2024-04-23 16:08 ? 次閱讀

場景一:重置root密碼

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

原理:mysql提供了特殊啟動方式,即跳過權限表驗證,啟動后,登錄不需要提供密碼;

登錄后,即可修改mysql數據庫的user表,重置密碼,然后刷新權限,重啟mysql服務即可;

注意:此時mysql服務將面臨高風險,請在合適時間執行;

#停止正在運行的mysql服務

service mysqld stop

#以--skip-grant-tables選項啟動服務,跳過權限表驗證,有2種方式

方式1:指定運行選項,只在本次啟動生效

./bin/mysqld_safe --skip-grant-tables --user=root &
如果本機沒有mysqld_safe服務,運行mysqld效果相同

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

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

#root賬號登錄mysql,此時不需要提供密碼
mysql -uroot


#切換到mysql數據庫,登錄賬號與權限在此數據庫中
use mysql;


#查看mysql版本
select version();


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


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


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


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


#刷新權限表
flush privileges;


#退出mysql連接
quit;


#重啟mysql服務
service mysqld restart

場景二:增加賬號與授權

以上--skip-grant-tables模式不驗證權限,同時無法增加賬號授權,所以增加賬號的登錄IP,需要以正常模式啟動登錄


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

場景三:修改登錄密碼

1> 更新mysql.user表,需要登錄MySQL執行,需要刷新權限列表生

mysql> use mysql; #5.7前后版本密碼字段不一致,且 user 表同時存在2個字段
# 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; #刷新權限列表

2> 用set password命令,需要登錄MySQL執行,自動刷新權限列表

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

3> alter user命令,需要登錄MySQL執行,自動刷新權限列表

語法:ALTER USER '用戶名'@'域' IDENTIFIED BY 'xxxx'; 
#初始化時root賬號只有localhost
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';

4> grant命令,需要登錄MySQL執行,自動刷新權限列表

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

5> mysqladmin,無需登錄MySQL執行,自動刷新權限列表

語法: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.

審核編輯:黃飛

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • MySQL
    +關注

    關注

    1

    文章

    801

    瀏覽量

    26441
  • root
    +關注

    關注

    1

    文章

    85

    瀏覽量

    21376

原文標題:MySQL忘記root密碼解決方案

文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運維】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

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

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

    MySQL root密碼忘記怎么辦?

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

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

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

    Mysql數據庫忘記密碼怎么辦如何修改密碼

    Mysql數據庫忘記密碼,修改密碼的方法,超詳細
    發表于 06-10 12:00

    不知道root密碼怎么修改

    今天一朋友問不知道root 密碼怎么修改。他這個系統是海思平臺的嵌入式Linux系統。然后嘗試了修改并進入系統。嵌入式Linux中的root 密碼
    發表于 11-05 08:33

    windowsxp忘記密碼

    windowsxp忘記密碼 計算機安裝的是Windows XP操作系統,不慎忘記了系統登錄用戶“zhangbq”的密碼,而且在安裝時也沒有做相應的應急盤,現把兩種方法介紹
    發表于 01-08 09:55 ?8727次閱讀

    Centos-root密碼忘記解決辦法

    linux系統丟失root密碼,進入啟動界面即可輕松解決。
    發表于 10-29 11:44 ?0次下載

    忘記了Linux系統的root密碼,該怎么辦?

    很多朋友經常會忘記Linux系統的root密碼,linux系統忘記root密碼的情況該怎么辦呢?
    的頭像 發表于 10-15 16:49 ?1.2w次閱讀

    工控機忘記密碼的解決方法

    本期上海研強給大家分享的是工控機忘記密碼解決方案,希望看完本篇文章您能對工控機有一個全新的認識!
    發表于 08-11 16:41 ?6432次閱讀

    不知道嵌入式Linux系統下的root密碼,修改新密碼并進入系統

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

    忘記Mysql用戶密碼怎么辦

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

    MySQL忘記root密碼解決方案

    密碼,可能會導致無法正常管理MySQL數據庫。 這篇文章將提供詳盡、詳實、細致的解決方案,幫助解決MySQL忘記
    的頭像 發表于 11-21 11:04 ?621次閱讀

    mysql密碼忘了怎么重置

    mysql密碼忘了怎么重置? MySQL是一種開源的關系型數據庫管理系統,密碼用于保護數據庫的安全性和保密性。如果你忘記
    的頭像 發表于 12-27 16:51 ?6334次閱讀

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

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

    Jtti:MySQL初始化操作如何設置root密碼

    MySQL初始化時,可以通過以下步驟設置root密碼: 打開命令行工具,使用以下命令啟動MySQL服務: ? sudo service mysql
    的頭像 發表于 08-08 16:45 ?311次閱讀