恢复MySQL的已删除"root"用户和密码 [英] Restoring deleted 'root' user and password for MySQL

查看:130
本文介绍了恢复MySQL的已删除"root"用户和密码的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我不小心删除了在OS X上运行的MAMP/MySQL的本地开发设置中的root用户.没有创建其他用户来返回MySQL.

I accidentally deleted the root user on my local dev setup of MAMP/MySQL running on OS X. There are no other users created to get back into MySQL.

这是一个温和的噩梦,没有root似乎什么也做不了.

This is a mild nightmare can't seem to do anything without root.

发现了此内容: http://hack2live.blogspot.com/2009/04/restore-repair-reset-mysql-root.html 似乎正是我所需要的.

Found this: http://hack2live.blogspot.com/2009/04/restore-repair-reset-mysql-root.html which seems like exactly what I need.

我也不认为重新安装MAMP可以解决问题,因为我的许多粗略搜索都使尝试过的人失败了.

I also don't think a reinstall of MAMP will do the trick, as a lot of my cursory searches yielded people who had tried without success.

有人知道OSX友好的方法来将root @ localhost重新创建回MAMP的MySQL吗?我基本上只是不知道MySQL在MAMP中生活在哪里,或者不知道如何在终端中执行正确的命令来尝试对其进行修复.

Does anyone know of an OSX friendly way to recreate root @ localhost back into MAMP's MySQL? I basically just don't know where MySQL is living in MAMP or how to execute the correct commands in terminal to try and fix it.

更新

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

I tried several options below to restore root to no avail and decided to restore a backup of the entire MAMP application. So I've got root back, I can open phpmyadmin, etc.

推荐答案

我有一个快速而肮脏的方法

I have a quick and dirty way

找一个拥有SysAdmin权限的人,然后执行以下操作:

Get someone with SysAdmin rights and do the following:

  1. 在[mysqld]部分下的my.cnf中添加"skip-grant-tables"

  1. Add 'skip-grant-tables' to my.cnf under the [mysqld] section

重新启动mysql

输入没有密码的mysql,然后按Enter键

type mysql with no password and hit 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退出

  • exit from mysql

    从[mysqld]部分下的my.cnf中删除"skip-grant-tables"

    remove 'skip-grant-tables' from my.cnf under the [mysqld] section

    重新启动mysql

    那应该是全部!

    这篇关于恢复MySQL的已删除"root"用户和密码的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

  • 查看全文
    登录 关闭
    扫码关注1秒登录
    发送“验证码”获取 | 15天全站免登陆