我无意中删除了在os x上运行的mamp/mysql本地开发设置中的root用户。没有创建其他用户来重新进入mysql。
这是一个温和的噩梦,没有root似乎什么都做不了。
找到这个:http://hack2live.blogspot.com/2009/04/restore-repair-reset-mysql-root.html这正是我需要的。
我也不认为mamp的重新安装会起到作用,因为我的许多粗略搜索结果都是那些尝试过但没有成功的人。
有没有人知道一种OSX友好的方法可以将root@localhost重新创建到MAMP的MySQL中?我基本上不知道mysql在mamp中的位置,也不知道如何在终端中执行正确的命令来修复它。
更新
我尝试了下面的几个选项来恢复根目录,但没有成功,我决定恢复整个mamp应用程序的备份。所以我有根回来,我可以打开phpMyAdmin等。

最佳答案

我的方法又快又脏
请具有系统管理员权限的人员执行以下操作:
在[mysqld]部分的my.cnf中添加“skip grant tables”
重启mysql
键入没有密码的mysql并按enter
运行此:

DELETE FROM mysql.user
WHERE  user = 'root'
       AND host = 'localhost';

INSERT INTO mysql.user
SET user = 'root',
    host = 'localhost',
    password = Password('whatevernewpassword'),
    Select_priv = 'y',
    Insert_priv = 'y',
    Update_priv = 'y',
    Delete_priv = 'y',
    Create_priv = 'y',
    Drop_priv = 'y',
    Reload_priv = 'y',
    Shutdown_priv = 'y',
    Process_priv = 'y',
    File_priv = 'y',
    Grant_priv = 'y',
    References_priv = 'y',
    Index_priv = 'y',
    Alter_priv = 'y',
    Show_db_priv = 'y',
    Super_priv = 'y',
    Create_tmp_table_priv = 'y',
    Lock_tables_priv = 'y',
    Execute_priv = 'y',
    Repl_slave_priv = 'y',
    Repl_client_priv = 'y',
    Create_view_priv = 'y',
    Show_view_priv = 'y',
    Create_routine_priv = 'y',
    Alter_routine_priv = 'y',
    Create_user_priv = 'y',
    Event_priv = 'y',
    Trigger_priv = 'y',
    Create_tablespace_priv = 'y';

退出mysql
从[mysqld]部分的my.cnf中删除“skip grant tables”
重启mysql
就这些!

10-06 05:36
查看更多