MySQL 暗碼設置。本站提示廣大學習愛好者:(MySQL 暗碼設置)文章只能為提供參考,不一定能成為您想要的結果。以下是MySQL 暗碼設置正文
一個主要的運用就是若何在遺忘root用戶暗碼的時刻修正暗碼,應用的辦法是啟動MySQL辦事器時疏忽加載受權表。
由MySQL應用用戶名和口令的辦法與Unix或Windows應用的方法有許多分歧的地方:
·MySQL 應用於認證目標的用戶名,與Unix用戶名(登錄名字)或Windows用戶名有關。缺省地,年夜多半MySQL客戶測驗考試應用以後 Unix用戶名作為MySQL用戶名登錄,然則這僅僅為了便利。客戶法式許可用-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格局給出,這裡 user和hostname完整與他們列在mysql.user表條目標User和Host列一樣。例如,假如你有一個條目其User和Host字段是 'bob'和'%.loc.gov',你將寫成:
mysql> SET PASSWORD FOR bob@"%.loc.gov" = 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上的一致用戶,能力履行這個操作。
假如在windows平台上,也能夠停滯過程。假如是NT還可以用net stop mysql敕令封閉數據庫。
2、應用'--skip-grant-tables' 參數來啟動 mysqld。
Unix平台:
$su mysql
$safe_mysqld --skip-grant-tables &
Windows平台:
C:\mysql\bin>mysqld --skip-grant-tables
以上語句,假建都位於准確的目次。
3、銜接到辦事器,修正口令
應用'mysql -h hostname mysql'敕令登錄到mysqld server ,用grant敕令轉變口令:
mysql>GRANT ALL ON *.* TO root@localhost INDENTIFIED BY 'new password'
-> WITH GRANT OPTION;
mysql>GRANT ALL ON *.* TO root@% 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@localhost,修正該用戶暗碼,不然普通修正root@%暗碼,除非你有其它root用戶存在。
4. 載入權限表:
shell> mysqladmin -h hostname flush-privileges
或許應用 SQL 敕令`FLUSH PRIVILEGES'。
固然,在這裡,你也能夠重啟mysqld。