亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > MySQL > 正文

MySQL root密碼忘記后更優雅的解決方法

2024-07-25 19:08:39
字體:
來源:轉載
供稿:網友

前言

一直以來,對于MySQL root密碼的忘記,以為只有一種解法-skip-grant-tables。

問了下群里的大咖,第一反應也是skip-grant-tables。通過搜索引擎簡單搜索了下,無論是百度,抑或Google,只要是用中文搜索,首頁都是這種解法??梢娺@種解法在某種程度上已經占據了使用者的心智。下面具體來看看。

skip-grant-tables的解法

首先,關閉實例

這里,只能通過kill mysqld進程的方式。

注意:不是mysqld_safe進程,也切忌使用kill -9。

# ps -ef |grep mysqldroot  6220 6171 0 08:14 pts/0 00:00:00 /bin/sh bin/mysqld_safe --defaults-file=my.cnfmysql  6347 6220 0 08:14 pts/0 00:00:01 /usr/local/mysql57/bin/mysqld --defaults-file=my.cnf --basedir=/usr/local/mysql57 --datadir=/usr/local/mysql57/data --plugin-dir=/usr/local/mysql57/lib/plugin --user=mysql --log-error=slowtech.err --pid-file=slowtech.pid --socket=/usr/local/mysql57/data/mysql.sock --port=3307root  6418 6171 0 08:17 pts/0 00:00:00 grep --color=auto mysqld# kill 6347

使用--skip-grant-tables參數,重啟實例

# bin/mysqld_safe --defaults-file=my.cnf --skip-grant-tables --skip-networking &

設置了該參數,則實例在啟動過程中會跳過權限表的加載,這就意味著任何用戶都能登錄進來,并進行任何操作,相當不安全。

建議同時添加--skip-networking參數。其會讓實例關閉監聽端口,自然也就無法建立TCP連接,而只能通過本地socket進行連接。

MySQL8.0就是這么做的,在設置了--skip-grant-tables參數的同時會自動開啟--skip-networking。

修改密碼

# mysql -S /usr/local/mysql57/data/mysql.sockmysql> update mysql.user set authentication_string=password('123456') where host='localhost' and user='root';Query OK, 0 rows affected, 1 warning (0.00 sec)Rows matched: 1 Changed: 0 Warnings: 1mysql> flush privileges;Query OK, 0 rows affected (0.00 sec)

注意:

這里的update語句針對的是MySQL 5.7的操作,如果是在5.6版本,修改的應該是password字段,而不是authentication_string。

update mysql.user set password=password('123456') where host='localhost' and user='root';

而在MySQL 8.0.11版本中,這種方式基本不可行,因為其已移除了PASSWORD()函數及不再支持SET PASSWORD ... = PASSWORD ('auth_string')語法。

不難發現,這種方式的可移植性實在太差,三個不同的版本,就先后經歷了列名的改變,及命令的不可用。

下面,介紹另外一種更通用的做法,還是在skip-grant-tables的基礎上。

與上面不同的是,其會先通過flush privileges操作觸發權限表的加載,再使用alter user語句修改root用戶的密碼,如:

# bin/mysql -S /usr/local/mysql57/data/mysql.sockmysql> alter user 'root'@'localhost' identified by '123';ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statementmysql> flush privileges;Query OK, 0 rows affected (0.00 sec)mysql> alter user 'root'@'localhost' identified by '123';Query OK, 0 rows affected (0.00 sec)

免密碼登錄進來后,直接執行alter user操作是不行的,因為此時的權限表還沒加載??上韧ㄟ^flush privileges操作觸發權限表的加載,再執行alter user操作。

需要注意的是,通過alter user修改密碼只適用于MySQL5.7和8.0,如果是MySQL 5.6,此處可寫成

update mysql.user set password=password('123456') where host='localhost' and user='root';

最后重啟實例

mysql> shutdown;# bin/mysqld_safe --defaults-file=my.cnf &

需要注意的是,如果在啟動的過程中沒有指定--skip-networking參數,無需重啟實例。但在網上看到的絕大多數方案,都是沒有指定該參數,但重啟了實例,實在沒有必要。

下面對這個方案做個總結:

1. 如果只添加了--skip-grant-tables,修改完密碼后,其實無需重啟,執行flush privileges即可。

2. 從安全角度出發,建議加上--skip-networking。但因其是靜態參數,將其剔除掉需要重啟實例。

3. 加上--skip-networking,雖然可以屏蔽掉TCP連接,但對于本地其它用戶,只要有socket文件的可讀權限,都能無密碼登錄。還是存在安全隱患。

4. 不建議通過update的方式修改密碼,更通用的其實是alter user。

更優雅的解法

相對于skip-grant-tables方案,我們來看看另外一種更優雅的解法,其只會重啟一次,且基本上不存在安全隱患。

首先,依舊是關閉實例

其次,創建一個sql文件

寫上密碼修改語句

# vim init.sql alter user 'root'@'localhost' identified by '123456';

最后,使用--init-file參數,啟動實例

# bin/mysqld_safe --defaults-file=my.cnf --init-file=/usr/local/mysql57/init.sql &

實例啟動成功后,密碼即修改完畢~

如果mysql實例是通過服務腳本來管理的,除了創建sql文件,整個操作可簡化為一步。

# service mysqld restart --init-file=/usr/local/mysql57/init.sql 

注意:該操作只適用于/etc/init.d/mysqld這種服務管理方式,不適用于RHEL 7新推出的systemd。

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對VeVb武林網的支持。


注:相關教程知識閱讀請移步到MYSQL教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
一区二区三区黄色| 一区二区亚洲欧洲国产日韩| 午夜精品一区二区三区在线| 国产精品h片在线播放| 欧美黑人国产人伦爽爽爽| 秋霞午夜一区二区| 国产精品第二页| 777国产偷窥盗摄精品视频| 欧美国产日韩免费| 最近更新的2019中文字幕| 国产欧美日韩免费看aⅴ视频| 精品久久久在线观看| 日韩精品视频免费在线观看| 69av视频在线播放| 亚洲最新中文字幕| 国产日韩av在线播放| 国产精品久久久久久婷婷天堂| 成年人精品视频| 国产偷亚洲偷欧美偷精品| 成人精品一区二区三区| 亚洲日韩欧美视频| 黑人极品videos精品欧美裸| 91久久精品国产| 68精品国产免费久久久久久婷婷| 91在线视频精品| 成人免费自拍视频| 在线免费观看羞羞视频一区二区| 欧美黑人一区二区三区| 亚洲免费视频网站| 亚洲人a成www在线影院| 久久久久久久久亚洲| 夜夜躁日日躁狠狠久久88av| 欧美激情精品久久久久久久变态| 久久99国产精品自在自在app| 欧美性受xxx| 国产精品香蕉在线观看| 国产亚洲精品91在线| 91国产精品视频在线| 国产精品大片wwwwww| 色狠狠av一区二区三区香蕉蜜桃| 精品视频在线播放| 亚洲第一视频在线观看| 欧美最猛性xxxxx亚洲精品| 亚洲三级av在线| 久久精品国产99国产精品澳门| 欧美一区二区三区精品电影| 国产成人一区三区| 成人免费淫片视频软件| 91在线视频一区| 亚洲欧美在线免费| 亚洲成人激情小说| 亚洲精品有码在线| 亚洲国产欧美一区| 国产精自产拍久久久久久蜜| 久久全球大尺度高清视频| 中文字幕在线亚洲| 欧美性xxxxx极品| 亚洲色无码播放| 在线一区二区日韩| 久久久人成影片一区二区三区观看| 成人a在线视频| 欧美在线免费观看| 亚洲国内精品在线| 亚洲品质视频自拍网| 国产精品白嫩初高中害羞小美女| 亚洲999一在线观看www| 日本不卡视频在线播放| 国产成人精品免费视频| 欧美成人午夜剧场免费观看| 国产视频精品自拍| 久久久国产精品免费| 日本一区二三区好的精华液| 中文字幕欧美日韩va免费视频| 国产亚洲精品久久久| 91精品免费视频| 91精品国产自产在线观看永久| 国产亚洲欧洲高清| 91久久国产婷婷一区二区| 久久人人爽亚洲精品天堂| 91亚洲精品一区二区| 浅井舞香一区二区| 亚洲a∨日韩av高清在线观看| 亚洲精品av在线播放| 国产精品久久久久av| 伦伦影院午夜日韩欧美限制| 国产拍精品一二三| 日日狠狠久久偷偷四色综合免费| 91精品国产高清久久久久久91| 久久久久国产精品免费| 亚洲激情久久久| 精品无人区乱码1区2区3区在线| 亚洲美女性生活视频| 国外成人性视频| 欧美—级高清免费播放| 日韩在线观看精品| 成年无码av片在线| 欧美激情视频三区| 日韩av中文字幕在线| 亚洲国模精品私拍| 精品日韩视频在线观看| 亚洲综合中文字幕在线观看| 欧美激情高清视频| 欧美日韩国产91| 国产精品久久久久久亚洲调教| 超碰日本道色综合久久综合| 国产69精品久久久久99| 日韩免费在线观看视频| 一级做a爰片久久毛片美女图片| 最近2019中文字幕mv免费看| 国产精品高清在线| 国产精品旅馆在线| 岛国av一区二区三区| 中文日韩在线观看| 国模叶桐国产精品一区| 91视频国产精品| 国产97色在线|日韩| 韩国视频理论视频久久| 欧美成人在线免费视频| 欧美国产极速在线| 亚洲色图国产精品| 久久久久久久色| 亚洲精选在线观看| 久久久久一本一区二区青青蜜月| 亚洲国产高清高潮精品美女| 久久精品国产清自在天天线| 国产精品丝袜久久久久久高清| 尤物九九久久国产精品的特点| 精品视频在线播放色网色视频| 国产精品嫩草影院一区二区| 国产午夜精品全部视频在线播放| 亚洲精品久久久久久久久| 97国产精品视频| 久久精品国产一区二区三区| 中文字幕欧美日韩va免费视频| 尤物tv国产一区| 日韩在线视频导航| 成人在线观看视频网站| 亚洲精品国精品久久99热一| 中文综合在线观看| 亚洲欧美日韩爽爽影院| 午夜精品久久久久久久男人的天堂| 亚洲第一男人天堂| 中文字幕精品视频| 亚洲人成在线免费观看| 国产精品久久久久久久电影| 亚洲91av视频| 亚洲毛片在线免费观看| 欧美性生交大片免费| 日韩毛片中文字幕| 亚洲成人xxx| 欧美乱大交xxxxx另类电影| 亚洲欧美中文另类| 日韩一二三在线视频播| 国产91色在线播放| 色综合天天狠天天透天天伊人| 欧美激情视频网| 91精品久久久久久久久不口人| 国产极品jizzhd欧美| 欧美一区二区三区图| 国产精品第二页| 亚洲国产精品免费| 91影视免费在线观看| 国产精品成人av性教育| 日本亚洲精品在线观看|