【发布时间】:2016-03-10 19:08:33
【问题描述】:
第一步是关闭 MySQL,然后在禁用显示授权的情况下重新连接:
/Applications/MAMP/Library/bin/mysqld --skip-grant-tables
--skip-networking --port=3306 --socket=/Applications/MAMP/tmp/mysql/mysql.sock &
从那里我连接到没有用户/密码的 MySQL 并修复了授予权限:
UPDATE mysql.user SET Grant_priv='Y', Super_priv='Y' WHERE User='root';
所以现在我的 mysql.user 行看起来像:
+-----------+-------+-------------------------------------------+-------------+-------------+-------------+-------------+-------------+-----------+-------------+---------------+--------------+-----------+------------+-----------------+------------+------------+--------------+------------+-----------------------+------------------+--------------+-----------------+------------------+------------------+----------------+---------------------+--------------------+------------------+------------+--------------+------------------------+----------+------------+-------------+--------------+---------------+-------------+-----------------+----------------------+--------+-----------------------+
| Host | User | Password | Select_priv | Insert_priv | Update_priv | Delete_priv | Create_priv | Drop_priv | Reload_priv | Shutdown_priv | Process_priv | File_priv | Grant_priv | References_priv | Index_priv | Alter_priv | Show_db_priv | Super_priv | Create_tmp_table_priv | Lock_tables_priv | Execute_priv | Repl_slave_priv | Repl_client_priv | Create_view_priv | Show_view_priv | Create_routine_priv | Alter_routine_priv | Create_user_priv | Event_priv | Trigger_priv | Create_tablespace_priv | ssl_type | ssl_cipher | x509_issuer | x509_subject | max_questions | max_updates | max_connections | max_user_connections | plugin | authentication_string |
+-----------+-------+-------------------------------------------+-------------+-------------+-------------+-------------+-------------+-----------+-------------+---------------+--------------+-----------+------------+-----------------+------------+------------+--------------+------------+-----------------------+------------------+--------------+-----------------+------------------+------------------+----------------+---------------------+--------------------+------------------+------------+--------------+------------------------+----------+------------+-------------+--------------+---------------+-------------+-----------------+----------------------+--------+-----------------------+
| localhost | root | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | | | | | 0 | 0 | 0 | 0 | | |
+-----------+-------+-------------------------------------------+-------------+-------------+-------------+-------------+-------------+-----------+-------------+---------------+--------------+-----------+------------+-----------------+------------+------------+--------------+------------+-----------------------+------------------+--------------+-----------------+------------------+------------------+----------------+---------------------+--------------------+------------------+------------+--------------+------------------------+----------+------------+-------------+--------------+---------------+-------------+-----------------+----------------------+--------+-----------------------+
然后我关闭了 mysql 并在没有授权表选项等的情况下重新启动:
/Applications/MAMP/Library/bin/mysqld --port=3306 --socket=/Applications/MAMP/tmp/mysql/mysql.sock &
然后我用 root 用户和密码重新连接,并再次授予自己对所有本地数据库的权限:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost'
还是没有运气。
mysql> SELECT * FROM exp_throttle LIMIT 1;
ERROR 1142 (42000): SELECT command denied to user 'root'@'localhost' for table 'exp_throttle'
我是否遗漏了一些明显的东西?
【问题讨论】:
-
谢谢瑞恩,我已经阅读并尝试过了。此时我什至无法卸载/重新安装 mysql,因为我无法取出我的数据库。
-
我放弃并从我的系统中完全卸载/重新安装了 MAMP Pro,即使在此之后,root 用户仍然无法执行任何操作(即创建新数据库)。