安裝完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