开发者社区 问答 正文

恢复MySQL的已删除“ root”用户和密码?mysql

我无意中删除了root在OS X上运行的MAMP / MySQL的本地开发设置中的用户。没有创建其他用户可返回MySQL。

这是一场温和的噩梦,似乎离不开一切root。

找到了:http : //hack2live.blogspot.com/2009/04/restore-repair-reset-reset-mysql-root.html,这似乎正是我所需要的。

我也不认为重新安装MAMP可以解决问题,因为我的许多粗略搜索都产生了尝试不成功的人们。

有谁知道OSX友好的方式来将root@ 重新创建localhost回MAMP的MySQL?我基本上只是不知道MySQL在MAMP中住在哪里,或者如何在终端中执行正确的命令来尝试修复它。

更新资料

我尝试了以下几种方法来恢复root均无效,并决定恢复整个MAMP应用程序的备份。所以我已经恢复了根,可以打开phpmyadmin等。

展开
收起
保持可爱mmm 2020-05-17 17:22:04 620 分享 版权
1 条回答
写回答
取消 提交回答
  • 我有一个快速而肮脏的方式

    获取具有SysAdmin权限的人员,然后执行以下操作:

    在[mysqld]部分下将'skip-grant-tables'添加到my.cnf

    重启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

    那应该是全部!来源:stack overflow

    2020-05-17 17:22:20
    赞同 展开评论