首先要聲明一點,大部分情況下,修改MySQL是需要有mysql裡的root許可權的, 所以一般使用者無法更改密碼,除非要求管理員。
方法一使用phpmyadmin,這是最簡單的了,修改mysql庫的user表, 不過別忘了使用PASSWORD函數。
方法二使用mysqladmin,這是前面聲明的一個特例。 mysqladmin -u root -p password mypasswd 輸入這個命令後,需要輸入root的原密碼,然後root的密碼將改為mypasswd。把命令裡的root改為你的使用者名稱,你就可以改你自己的密碼了。 當然如果你的mysqladmin串連不上mysql server,或者你沒有辦法執行mysqladmin, 那麼這種方法就是無效的。 而且mysqladmin無法把密碼清空。下面的方法都在mysql提示符下使用,且必須有mysql的root許可權:
方法三 mysql> INSERT INTO mysql.user (Host,User,Password) VALUES('%','jeffrey',PASSWORD('biscuit')); mysql> FLUSH PRIVILEGES 確切地說這是在增加一個使用者,使用者名稱為jeffrey,密碼為biscuit。 在《mysql中文參考手冊》裡有這個例子,所以我也就寫出來了。注意要使用PASSWORD函數,然後還要使用FLUSH PRIVILEGES。
方法四 和方法三一樣,只是使用了REPLACE語句 mysql> REPLACE INTO mysql.user (Host,User,Password) VALUES('%','jeffrey',PASSWORD('biscuit')); mysql> FLUSH PRIVILEGES
方法五 使用SET PASSWORD語句, mysql> SET PASSWORD FOR jeffrey@"%" = PASSWORD('biscuit'); 你也必須使用PASSWORD()函數, 但是不需要使用FLUSH PRIVILEGES。
方法六使用GRANT ... IDENTIFIED BY語句 mysql> GRANT USAGE ON *.* TO jeffrey@"%" IDENTIFIED BY 'biscuit'; 這裡PASSWORD()函數是不必要的,也不需要使用FLUSH PRIVILEGES。注意: PASSWORD() [不是]以在Unix口令加密的同樣方法施行口令加密。