溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

MySQL的密碼怎么修改

發(fā)布時間:2021-08-20 11:34:02 來源:億速云 閱讀:116 作者:chen 欄目:數(shù)據(jù)庫

這篇文章主要講解了“MySQL的密碼怎么修改”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“MySQL的密碼怎么修改”吧!

摘要:本文介紹了如何修改一個用戶的密碼,你可以使用三種方法,GRANT語句、SET PASSWORD語句、直接修改授權(quán)表以及使用管理工具mysqladmin。一個重要的應(yīng)用就是如何在遺忘root用戶密碼的時候修改密碼,使用的方法是啟動MySQL服務(wù)器時忽略加載授權(quán)表。

由MySQL使用用戶名和口令的方法與Unix或Windows使用的方式有很多不同之處:

·MySQL使用于認證目的的用戶名,與Unix用戶名(登錄名字)或Windows用戶名無關(guān)。缺省地,大多數(shù)MySQL客戶嘗試使用當前 Unix用戶名作為MySQL用戶名登錄,但是這僅僅為了方便??蛻舫绦蛟试S用-u或--user選項指定一個不同的名字,這意味著無論如何你不能使得一個數(shù)據(jù)庫更安全,除非所有的MySQL用戶名都有口令。任何人可以試圖用任何名字連接服務(wù)器,而且如果他們指定了沒有口令的任何名字,他們將成功。

·MySQL用戶名最長可以是16各字符;典型地,Unix用戶名限制為8個字符。

·MySQL口令與Unix口令沒關(guān)系。在你使用登錄到一臺Unix機器口令和你使用在那臺機器上存取一個數(shù)據(jù)庫的口令之間沒有必要有關(guān)聯(lián)。

·MySQL加密口令使用了一個Unix登錄期間所用的不同算法。

本節(jié)將介紹如何為MySQL數(shù)據(jù)庫系統(tǒng)的用戶修改密碼。

使用myadmin實用程序

使用mysqladmin實用程序修改密碼的命令行是:

shell>mysqladmin -u user -p password "newpassword"

運行這個命令,在提示輸入密碼時,數(shù)據(jù)就密碼,則用戶user的密碼就被改為newpassword
。如果,原來的用戶沒有密碼,則不比指定-p選項。例如,初始化授權(quán)表之后,root用戶的密碼就是空的,你可以這樣為root用戶設(shè)立密碼:

shell>mysqladmin -u root password "newpassword"

使用語句SET  PASSWORD

使用mysqladmin為用戶修改密碼有一個明顯的缺點,就是必須知道用戶原來的密碼,如果是為了給遺忘了密碼的用戶重設(shè)密碼就無能為力了。一個專門用于修改密碼的SQL語句為SET  PASSWORD:

·SET  PASSWORD = PASSWORD(some password)

設(shè)置當前用戶的口令。任何非匿名的用戶能改變他自己的口令!

連接到服務(wù)器后,你可以這樣改變自己的密碼:

mysql> SET  PASSWORD = PASSWORD(another pass);

·SET  PASSWORD FOR user = PASSWORD(some password)

設(shè)置當前服務(wù)器主機上的一個特定用戶的口令。只有具備存取mysql數(shù)據(jù)庫的用戶可以這樣做。用戶應(yīng)該以格式給出,這里 user和hostname完全與他們列在mysql.user表條目的User和Host列一樣。例如,如果你有一個條目其User和Host字段是 bob和%.loc.gov,你將寫成:

mysql> SET PASSWORD FOR " = PASSWORD("newpass");

直接修改授權(quán)表

另一種修改,密碼的方法是直接修改授權(quán)表user。只有具備存取mysql數(shù)據(jù)庫的用戶可以這樣做。

例如,如果你有一個條目其User和Host字段是bob和%.loc.gov,你將寫成:

mysql> UPDATE mysql.user SET password=PASSWORD("newpass") where user="bob AND host="%.loc.gov";
mysql>FLUSH PRIVILEGES;


重新設(shè)置一個遺忘的root口令

如果你遺忘了root用戶的口令,那么將會是一件非常麻煩的事。除非你有其它有特權(quán)的用戶,否則很多操作都無法完成,例如,關(guān)閉數(shù)據(jù)庫等等。

你應(yīng)當選用--without-grant-tables選項啟動mysqld服務(wù),你可以在這時更改授權(quán)表的相關(guān)內(nèi)容,也可以用mysqlaccess檢查你的授權(quán)是否到位。

例如,如果你忘記了你的MYSQL的root口令的話,你可以通過下面的過程恢復(fù)。

1、關(guān)閉MySQL服務(wù)器

向mysqld server 發(fā)送kill命令關(guān)掉mysqld server(不是 kill -9),存放進程ID的文件通常在MYSQL的數(shù)據(jù)庫所在的目錄中。

kill `cat /mysql-data-directory/hostname.pid`

你必須是UNIX的root用戶或者是你所運行的SERVER上的同等用戶,才能執(zhí)行這個操作。

如果在平臺上,也可以停止進程。如果是NT還可以用net stop mysql命令關(guān)閉。

2、使用--skip-grant-tables 參數(shù)來啟動 d。

Unix平臺:

 $su mysql

 $safe_mysqld --skip-grant-tables &

Windows平臺:

 C:mysqlin>mysqld --skip-grant-tables

以上語句,假定都位于正確的目錄。

3、連接到服務(wù)器,修改口令

使用mysql -h hostname mysql命令登錄到mysqld server ,用grant命令改變口令:


mysql>GRANT ALL ON *.* TO  INDENTIFIED BY new password
-> WITH GRANT OPTION;
mysql>GRANT ALL ON *.* TO  INDENTIFIED BY new password
-> WITH GRANT OPTION;


(如果存在一個能從任意地址登錄的root用戶,初始化授權(quán)表后,生成該用戶,為了安全,你可能已經(jīng)刪除該用戶)。

其實也可以直接修改授權(quán)表:

mysql> use mysql;
mysql> update user set password =password(yourpass) where user=root;


你可能使用工具mysqladmin修改密碼:

shell> mysqladmin -h hostname -u root password new password

但是它修改的密碼語服務(wù)器匹配的用戶有關(guān)。如果,你從服務(wù)器主機連接,那么服務(wù)器匹配的是,修改該用戶密碼,否則一般修改密碼,除非你有其它root用戶存在。

4. 載入權(quán)限表:

shell> mysqladmin -h hostname flush-privileges

或者使用 SQL 命令`FLUSH PRIVILEGES。

當然,在這里,你也可以重啟mysqld。

感謝各位的閱讀,以上就是“MySQL的密碼怎么修改”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對MySQL的密碼怎么修改這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI