Tôi vừa cài đặt máy chủ Cộng đồng MySQL (5.5.8) trên Mac OS X 10.6.6.MySQL dường như DROP USER; nhưng người dùng vẫn tồn tại trong bảng mysql.users
Tôi đã làm theo các quy tắc cho một cài đặt (gán mật khẩu để nhổ tận gốc, xóa các tài khoản nặc danh, vv) an toàn, tuy nhiên, có một tài khoản người dùng mà tôi không thể thả:
mysql> select host, user from mysql.user;
+--------------------------------+------+
| host | user |
+--------------------------------+------+
| 127.0.0.1 | root |
| ::1 | root |
| My-Computer-Hostname.local | |
| My-Computer-Hostname.local | root |
| localhost | root |
| localhost | web |
+--------------------------------+------+
6 rows in set (0.00 sec)
mysql> drop user ''@'My-Computer-Hostname.local';
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql> select host, user from mysql.user;
+--------------------------------+------+
| host | user |
+--------------------------------+------+
| 127.0.0.1 | root |
| ::1 | root |
| My-Computer-Hostname.local | |
| My-Computer-Hostname.local | root |
| localhost | root |
| localhost | web |
+--------------------------------+------+
6 rows in set (0.00 sec)
mysql>
Như bạn có thể thấy, MySQL báo cáo không có lỗi khi thực hiện lệnh DROP USER, nhưng không thực sự xóa người dùng!
Tôi cũng đã thử xóa người dùng khỏi trong phpMyAdmin (3.3.9) và tạo ra kết quả tương tự (tức là thành công được báo cáo, không có thông báo lỗi, người dùng không bị xóa).
Tôi đã nghiên cứu này và một số người gợi ý rằng CẤP có thể chặn lệnh thả USER, tuy nhiên, người dùng không có đặc quyền CẤP:
mysql> SHOW GRANTS FOR ''@'My-Computer-Hostname.local';
+-----------------------------------------------------------+
| Grants for @my-computer-hostname.local |
+-----------------------------------------------------------+
| GRANT USAGE ON *.* TO ''@'my-computer-hostname.local' |
+-----------------------------------------------------------+
1 row in set (0.00 sec)
mysql> REVOKE GRANT OPTION ON *.* FROM ''@'My-Computer-Hostname.local';
ERROR 1141 (42000): There is no such grant defined for user '' on host 'my-computer-hostname.local'
tôi đã cố gắng thả người sử dụng trở lại sau đó, nhưng nó đã không 't thả/xóa người dùng.
Tôi đã kiểm tra nhật ký lỗi MySQl của mình và không có gì khác thường trong đó.
Hướng dẫn sử dụng MySQL gợi ý rằng có thể xóa tất cả các tài khoản ẩn danh, vậy tại sao tôi không thể xóa tài khoản này?