我不小心删除了root在OS X上运行的MAMP/MySQL的本地开发设置中的用户.没有其他用户创建回到MySQL.
这是一场温和的噩梦似乎无能为力root.
发现这个:http://hack2live.blogspot.com/2009/04/restore-repair-reset-mysql-root.html这似乎正是我需要的.
我也不认为重新安装MAMP可以解决这个问题,因为我的粗略搜索产生了许多尝试过没有成功的人.
有没有人知道OSX友好的方式重新创建root@ localhost回到MAMP的MySQL?我基本上只是不知道MySQL在MAMP中的位置,或者如何在终端中执行正确的命令来尝试修复它.
更新
我尝试了以下几个选项来恢复root无效,并决定恢复整个MAMP应用程序的备份.所以我已经回来了,我可以打开phpmyadmin等.
Rol*_*DBA 64
我有一个快速而肮脏的方式
获取具有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';
Run Code Online (Sandbox Code Playgroud)退出mysql
从[mysqld]部分的my.cnf中删除'skip-grant-tables'
重启mysql
这应该是全部!
jm6*_*666 11
适用于OS X 的http://hack2live.blogspot.com/2009/04/restore-repair-reset-mysql-root.html的翻译版本 .
打开TextEdit.app并选择格式 - >"制作纯文本".
将以下内容剪切并粘贴到TextEdit中,并将其保存到名称为HOME的HOME文件夹中restore_root_privileges.sql
update mysql.user set Super_priv='y' where user='root';
update mysql.user set Select_priv='y' where user='root';
update mysql.user set Insert_priv='y' where user='root';
update mysql.user set Update_priv='y' where user='root';
update mysql.user set Delete_priv='y' where user='root';
update mysql.user set Create_priv='y' where user='root';
update mysql.user set Drop_priv='y' where user='root';
update mysql.user set Reload_priv='y' where user='root';
update mysql.user set Shutdown_priv='y' where user='root';
update mysql.user set Process_priv='y' where user='root';
update mysql.user set File_priv='y' where user='root';
update mysql.user set Grant_priv='y' where user='root';
update mysql.user set References_priv='y' where user='root';
update mysql.user set Index_priv='y' where user='root';
update mysql.user set Alter_priv='y' where user='root';
update mysql.user set Show_db_priv='y' where user='root';
update mysql.user set Super_priv='y' where user='root';
update mysql.user set Create_tmp_table_priv='y' where user='root';
update mysql.user set Lock_tables_priv='y' where user='root';
update mysql.user set Execute_priv='y' where user='root';
update mysql.user set Repl_slave_priv='y' where user='root';
update mysql.user set Repl_client_priv='y' where user='root';
update mysql.user set Create_view_priv='y' where user='root';
update mysql.user set Show_view_priv='y' where user='root';
update mysql.user set Create_routine_priv='y' where user='root';
update mysql.user set Alter_routine_priv='y' where user='root';
update mysql.user set Create_user_priv='y' where user='root';
Run Code Online (Sandbox Code Playgroud)
保存并退出TextEdit.app.
停止你的mysqld服务器.怎么做,取决于你用于MySQL的安装.您可能在系统首选项中有一个PreferencePane.如果没有,您必须查阅MySQL安装的文档.
打开Terminal.app(Applications/Utilities)输入以下命令:
sudo mysqld --skip-grant-tables & #start your MySQL server without access control
mysql -vv < ~/restore_root_privileges.sql
sudo mysqladmin -p shutdown
Run Code Online (Sandbox Code Playgroud)
通常启动MySQL服务器,例如从PreferencePanes启动.
在Terminal.app中:输入以下内容:
mysql -u root -p
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION;
mysql> quit;
Run Code Online (Sandbox Code Playgroud)
就这样.没有任何保证.如果做错了,您可以放弃所有数据.先备份你的mysql文件.
如果你有类似的东西:
-bash: mysql: command not found
Run Code Online (Sandbox Code Playgroud)
这意味着,比你的安装不正确,你应该找到你的mysql二进制文件的位置,并且需要在你的PATH变量中输入目录.
小智 6
我刚刚得到同样的问题.我在Windows 7上使用Xammp.我在phpmyadmin中意外删除了root用户.
看来我能够在这样的简单路线中修复问题:
在xammp控件中停止apache和mysql
转到.../xammp/mysql
您将看到文件"resetroot".运行此文件
完成此应用程序后,重新启动mysql和apache
转到phpmyadmin,您将看到root用户已恢复
现在,您可以再次访问所有数据库
| 归档时间: |
|
| 查看次数: |
48254 次 |
| 最近记录: |