Запуск show grants;
означает, что я зарегистрирован как пользователь со всеми привилегиями в базе данных.
Запуск show table status;
приводит к ошибке. И ошибка не показывает имя пользователя, в котором я зарегистрирован как!
Как будто для этой команды mysql забывает, кто я. Другие операции выбора отлично работают. Может кто-нибудь объяснить это? Как исправить? Спасибо.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.5.13-log Source distribution
Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> show grants;
+---------------------------------------------------------------------------------------------------------------------+
| Grants for [email protected] |
+---------------------------------------------------------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'php'@'localhost' IDENTIFIED BY PASSWORD '*8F5FF90079BC601F8EA7C148475658E65A0C029D' |
| GRANT ALL PRIVILEGES ON `sunflower_work`.* TO 'php'@'localhost' |
| GRANT ALL PRIVILEGES ON `news_demo`.* TO 'php'@'localhost' |
| GRANT ALL PRIVILEGES ON `news_base`.* TO 'php'@'localhost' |
+---------------------------------------------------------------------------------------------------------------------+
4 rows in set (0.00 sec)
mysql> show table status from sunflower_work;
ERROR 1143 (42000): SELECT command denied to user ''@'%' for column 'uid' in table 'users'
mysql>
update... как было предложено Tomalak, я удалил пользователя и воссоздал его с полными привилегиями и без пароля. Тем не менее проблема сохраняется. Теперь это выглядит так:
mysql> show grants;
+--------------------------------------------------+
| Grants for [email protected] |
+--------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'php'@'localhost' |
+--------------------------------------------------+
1 row in set (0.00 sec)
mysql> show table status;
ERROR 1143 (42000): SELECT command denied to user ''@'%' for column 'uid' in table 'users'
mysql>