共計 2782 個字符,預計需要花費 7 分鐘才能閱讀完成。
這篇文章主要講解了“MySQL 的密碼怎么修改”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著丸趣 TV 小編的思路慢慢深入,一起來研究和學習“MySQL 的密碼怎么修改”吧!
摘要:本文介紹了如何修改一個用戶的密碼,你可以使用三種方法,GRANT 語句、SET PASSWORD 語句、直接修改授權表以及使用管理工具 mysqladmin。一個重要的應用就是如何在遺忘 root 用戶密碼的時候修改密碼,使用的方法是啟動 MySQL 服務器時忽略加載授權表。
由 MySQL 使用用戶名和口令的方法與 Unix 或 Windows 使用的方式有很多不同之處:
·MySQL 使用于認證目的的用戶名,與 Unix 用戶名 (登錄名字) 或 Windows 用戶名無關。缺省地,大多數 MySQL 客戶嘗試使用當前 Unix 用戶名作為 MySQL 用戶名登錄,但是這僅僅為了方便??蛻舫绦蛟试S用 - u 或 –user 選項指定一個不同的名字,這意味著無論如何你不能使得一個數據庫更安全,除非所有的 MySQL 用戶名都有口令。任何人可以試圖用任何名字連接服務器,而且如果他們指定了沒有口令的任何名字,他們將成功。
·MySQL 用戶名最長可以是 16 各字符;典型地,Unix 用戶名限制為 8 個字符。
·MySQL 口令與 Unix 口令沒關系。在你使用登錄到一臺 Unix 機器口令和你使用在那臺機器上存取一個數據庫的口令之間沒有必要有關聯。
·MySQL 加密口令使用了一個 Unix 登錄期間所用的不同算法。
本節將介紹如何為 MySQL 數據庫系統的用戶修改密碼。
使用 myadmin 實用程序
使用 mysqladmin 實用程序修改密碼的命令行是:
shell mysqladmin -u user -p password newpassword
運行這個命令,在提示輸入密碼時,數據就密碼,則用戶 user 的密碼就被改為 newpassword
。如果,原來的用戶沒有密碼,則不比指定 - p 選項。例如,初始化授權表之后,root 用戶的密碼就是空的,你可以這樣為 root 用戶設立密碼:
shell mysqladmin -u root password newpassword
使用語句 SET PASSWORD
使用 mysqladmin 為用戶修改密碼有一個明顯的缺點,就是必須知道用戶原來的密碼,如果是為了給遺忘了密碼的用戶重設密碼就無能為力了。一個專門用于修改密碼的 SQL 語句為 SET PASSWORD:
·SET PASSWORD = PASSWORD(some password)
設置當前用戶的口令。任何非匿名的用戶能改變他自己的口令!
連接到服務器后,你可以這樣改變自己的密碼:
mysql SET PASSWORD = PASSWORD(another pass);
·SET PASSWORD FOR user = PASSWORD(some password)
設置當前服務器主機上的一個特定用戶的口令。只有具備存取 mysql 數據庫的用戶可以這樣做。用戶應該以格式給出,這里 user 和 hostname 完全與他們列在 mysql.user 表條目的 User 和 Host 列一樣。例如,如果你有一個條目其 User 和 Host 字段是 bob 和 %.loc.gov,你將寫成:
mysql SET PASSWORD FOR = PASSWORD(newpass
直接修改授權表
另一種修改,密碼的方法是直接修改授權表 user。只有具備存取 mysql 數據庫的用戶可以這樣做。
例如,如果你有一個條目其 User 和 Host 字段是 bob 和 %.loc.gov,你將寫成:
mysql UPDATE mysql.user SET password=PASSWORD(newpass) where user= bob AND host= %.loc.gov
mysql FLUSH PRIVILEGES;
重新設置一個遺忘的 root 口令
如果你遺忘了 root 用戶的口令,那么將會是一件非常麻煩的事。除非你有其它有特權的用戶,否則很多操作都無法完成,例如,關閉數據庫等等。
你應當選用 –without-grant-tables 選項啟動 mysqld 服務,你可以在這時更改授權表的相關內容,也可以用 mysqlaccess 檢查你的授權是否到位。
例如,如果你忘記了你的 MYSQL 的 root 口令的話,你可以通過下面的過程恢復。
1、關閉 MySQL 服務器
向 mysqld server 發送 kill 命令關掉 mysqld server(不是 kill -9), 存放進程 ID 的文件通常在 MYSQL 的數據庫所在的目錄中。
kill `cat /mysql-data-directory/hostname.pid`
你必須是 UNIX 的 root 用戶或者是你所運行的 SERVER 上的同等用戶,才能執行這個操作。
如果在平臺上,也可以停止進程。如果是 NT 還可以用 net stop mysql 命令關閉。
2、使用 –skip-grant-tables 參數來啟動 d。
Unix 平臺:
$su mysql
$safe_mysqld –skip-grant-tables
Windows 平臺:
C:mysqlin mysqld –skip-grant-tables
以上語句,假定都位于正確的目錄。
3、連接到服務器,修改口令
使用 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 用戶,初始化授權表后,生成該用戶,為了安全,你可能已經刪除該用戶)。
其實也可以直接修改授權表:
mysql use mysql;
mysql update user set password =password(yourpass) where user=root;
你可能使用工具 mysqladmin 修改密碼:
shell mysqladmin -h hostname -u root password new password
但是它修改的密碼語服務器匹配的用戶有關。如果,你從服務器主機連接,那么服務器匹配的是,修改該用戶密碼,否則一般修改密碼,除非你有其它 root 用戶存在。
4. 載入權限表:
shell mysqladmin -h hostname flush-privileges
或者使用 SQL 命令 `FLUSH PRIVILEGES。
當然,在這里,你也可以重啟 mysqld。
感謝各位的閱讀,以上就是“MySQL 的密碼怎么修改”的內容了,經過本文的學習后,相信大家對 MySQL 的密碼怎么修改這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是丸趣 TV,丸趣 TV 小編將為大家推送更多相關知識點的文章,歡迎關注!