日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql 社区版密码如何修改_如何用优雅的方法修改MySQL root密码

發(fā)布時間:2025/3/15 数据库 13 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql 社区版密码如何修改_如何用优雅的方法修改MySQL root密码 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

搭噶好,我系小編,我好久沒發(fā)文章了啊,今天發(fā)文章的原因是,我竟然忘了我的MySQL root密碼。。本來想找RAKsmart客服直接重置啥的,后來想想還是自己搞吧,還能長知識。

然后,我發(fā)現(xiàn)一個事情,,大家都是用的-skip-grant-tables方法,搜各種瀏覽器都是顯示的這種,下面我們就看一下這種方法,大家不要著急哈,先說的常規(guī)的方法,下面才是優(yōu)雅的方法!

常規(guī)skip-grant-tables的方法:

首先,關(guān)閉實例

這里,只能通過kill mysqld進(jìn)程的方式。

注意:不是mysqld_safe進(jìn)程,也切忌使用kill -9。

如何用優(yōu)雅的方法修改MySQL root密碼

設(shè)置了該參數(shù),則實例在啟動過程中會跳過權(quán)限表的加載,這就意味著任何用戶都能登錄進(jìn)來,并進(jìn)行任何操作,相當(dāng)不安全。

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

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

修改密碼

注意:

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

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

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

不難發(fā)現(xiàn),這種方式的可移植性實在太差,三個不同的版本,就先后經(jīng)歷了列名的改變,及命令的不可用。

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

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

免密碼登錄進(jìn)來后,直接執(zhí)行alter user操作是不行的,因為此時的權(quán)限表還沒加載。可先通過flush privileges操作觸發(fā)權(quán)限表的加載,再執(zhí)行alter user操作。

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

最后重啟實例

mysql> shutdown;

# bin/mysqld_safe --defaults-file=my.cnf &

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

下面對這個方案做個總結(jié):

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

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

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

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

更優(yōu)雅的解法

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

首先,依舊是關(guān)閉實例

其次,創(chuàng)建一個sql文件

寫上密碼修改語句

# vim init.sql

alter user ''root''@''localhost'' identified by ''123456'';

最后,使用--init-file參數(shù),啟動實例

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

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

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

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

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

好了,沒想到修改MySQL root密碼還能變得優(yōu)雅,敲代碼是不是也能,希望我以后不會禿頂吧,大家明天見!

文章來源于: 美國主機評論,版權(quán)歸原作者所有,如有侵權(quán),請聯(lián)系 guanwang@163yun.com 刪除。

創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎

總結(jié)

以上是生活随笔為你收集整理的mysql 社区版密码如何修改_如何用优雅的方法修改MySQL root密码的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。