安裝完MySQL以後會自動建立一個root使用者和一個匿名使用者,對於root大家都非常注意,而這個匿名使用者很多人都會忽略,大概是因為匿名使用者預設設定為只能在本地使用的緣故吧。
但如果MySQL要作為資料庫提供給Web伺服器使用的話,忽略這個匿名使用者的代價可能相當慘重。因為在預設設定下,這個匿名使用者在localhost上幾乎擁有和root一樣的許可權。很可能因為訪問者上傳一個PHP檔案,用這個PHP檔案建立一個新使用者,並給他一個較高的許可權,然後用這個新使用者串連到伺服器的MySQL,對該伺服器的MySQL進行管理。
刪除命令如下:
複製代碼 代碼如下: MySQL>UPDATE user set password=PASSWORD('your password') where user='';
MySQL>FLUSH PRIVILEGES;
mysql中刪除匿名使用者詳細步驟如下:
[root@sample ~]#mysql -u root -p ← 通過密碼用root登入
Enter password: ← 在這裡輸入密碼
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 7 to server version: 4.1.20
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql>select user,host from mysql.user; ← 查看使用者資訊
+------+----------------------------+
| user | host |
+------+----------------------------+
| | localhost |
| root | localhost |
| | sample.centospub.com |
| root | sample.centospub.com |
+------+----------------------------+
4 rows in set (0.02 sec)
mysql> delete from mysql.user where user=''; ← 刪除匿名使用者
Query OK, 2 rows affected (0.17 sec)
mysql> select user,host from mysql.user; ← 查看使用者資訊
+------+----------------------------+
| user | host |
+------+----------------------------+
| root | localhost |
| root | sample.centospub.com |
+------+----------------------------+
2 rows in set (0.00 sec)
mysql> exit ← 退出MySQL伺服器
Bye