2009-02-23 203 views
1

我最近在家裏安裝了easyPHP來做一些開發工作,我的電腦作爲服務器運行(Windows XP)。設置mysql用戶名和密碼

easyPHP設置apache,php和mysql在您的計算機上工作。我無法爲mysql帳戶設置用戶名和密碼(不幸的是,我只通過cPanel完成了這項工作)。

easyPHP GUI允許您通過我認爲沒有密碼的「root」登錄到mySQL,但我想盡快更改此設置。

有什麼建議嗎?謝謝。

回答

3

您可以通過此命令創建用戶:

create user [email protected]; 

例如:

create user [email protected]; 

,然後你我爲用戶設置密碼。可以使用這條線來創建用於當前用戶的密碼已登錄在:

set password = password('mynewpassword'); 

在上述命令,密碼()函數轉換字符串參數的哈希密碼將由MySQL的用於認證用戶。如果您使用此行:

set password = 'mynewpassword'; 

那麼你已經進入你的字符串作爲密碼,這是不是一個散列值,所以你不會可以稍後重新登錄。所以不要忘記使用password()函數。

更改密碼爲其他用戶,使用這個命令:

set password for [email protected] = password('userpassword'); 

例如:

set password for [email protected] = password('dalkXfda23423'); 

創建用戶並用密碼保護登錄後,你需要設置權限的用戶。使用GRANT命令來執行此操作。一般的語法是這樣的:

授予{權限}在db.table到user @ host;

在此命令中,權限是逗號分隔的權限列表,如SELECT,INSERT,CREATE,DROP,DELETE。您可以將ALL用作高級權限,以便用戶可以執行大部分操作。 db.table指定用戶可能執行操作的某個數據庫的表。因此您可以將用戶限制爲僅限數據庫的表,或者使用通配符*來允許所有表或數據庫。 例如:

GRANT ALL ON myDb.* to [email protected]; 

如果您尚未創建用戶,或設置密碼,通過使用授權命令,您可以創建用戶,爲他設置的密碼,並授予權限的一次。語法是這樣的:

GRANT {PERMISSIONS} ON db.table to [email protected] IDENTIFIED BY 'userpassword'; 

例如:

GRANT ALL ON myDb.* to [email protected] IDENTIFIED BY 'dalkXfda23423'; 
0

下一段代碼(複製自http://www.debian-administration.org/articles/39)用密碼創建一個用戶paul(@localhost),並賦予它對pauldb數據庫的完整權限。所有從MySQL提示中完成:

mysql> grant CREATE,INSERT,DELETE,UPDATE,SELECT on pauldb.* to [email protected]; 
Query OK, 0 rows affected (0.00 sec) 
mysql> set password for paul = password('mysecretpassword'); 
Query OK, 0 rows affected (0.00 sec) 
mysql> flush privileges; 
mysql> exit;