2011-05-22 72 views
23

我不小心刪除了root用戶對OS X上運行MAMP/MySQL的有創建找回到MySQL沒有其他用戶的我的本地開發的設置。恢復已刪除的「根」用戶和密碼爲MySQL

這是一種溫和的噩夢似乎無法做任何事情沒有root

發現這一點:http://hack2live.blogspot.com/2009/04/restore-repair-reset-mysql-root.html這好像正是我需要的。

我也並不認爲MAMP的重新安裝就可以了,因爲我的很多粗略搜索得到誰沒有成功試過的人。

有誰知道的OSX友好的方式來重新root @localhost回MAMP的MySQL的?我基本上不知道MySQL在MAMP中的居住地,或者如何在終端中執行正確的命令來嘗試修復它。

更新

我試過幾個選項下面來恢復根無果,決定恢復整個應用MAMP的備份。所以,我有根了,我可以打開的phpmyadmin等

回答

45

我有一個快速和骯髒的方式

獲取有人用系統管理員權限,並執行以下操作:

  1. 增加「跳過-grant桌下的[mysqld]節my.cnf文件

  2. 重啓MySQL

  3. 類型的MySQL,沒有密碼和回車

  4. 運行此:

    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'; 
    
  5. 從MySQL出口

  6. 刪除 '跳過授權桌' 從下的my.cnf的[mysqld]節

  7. 重啓MySQL

這應該是所有!

+1

對於任何使用MAMP的人。在MAMP/conf /'中創建你自己的'my.cnf',並在其中放入'[mysqld] skip-grant-tables'。 – Thumbz 2013-05-30 01:17:21

+0

這是爲我工作的那個。如果你根本沒有root用戶,你必須創建一個,許多指令似乎忽略了這一點。感謝Rolando! – ftrotter 2013-09-16 17:13:33

+0

謝謝,這讓我擺脫了困境。我使用的是Windows Server 2008 FWIW。 – 2014-03-21 17:18:47

10

http://hack2live.blogspot.com/2009/04/restore-repair-reset-mysql-root.html的翻譯版本 - 和OS X.

打開TextEdit.app在格式選擇 - > 「製作純文本」。
剪切並粘貼以下到文本編輯並保存到您的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'; 

保存並退出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 

爲通常啓動MySQL服務器,例如來自PreferencePanes。
在Terminal.app:輸入以下命令:

mysql -u root -p 
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION; 
mysql> quit; 

這就是全部。 沒有任何保證。如果做錯了,你可以放棄所有的數據。 先備份你的mysql文件。

如果你有這樣的:

-bash: mysql: command not found 

這就是意味着,比你的安裝不正確,你會發現這裏是你的mysql二進制文件,並需要進入目錄到你的PATH變量。

+0

非常感謝。這個在Ubuntu Linux下使用XAMPP爲我工作,並完成相應的操作:D – hakermania 2013-11-11 17:20:32

+0

在我的Mac上,mysqld拒絕以root身份運行。通過向sudo命令添加'-u mysql'來解決這個問題。 – nschum 2015-03-03 15:45:45

1

昨天我做了完全一樣的事情,對Mac和sql服務器是新手。我不小心刪除了root用戶,因爲我在嘗試設置新用戶和密碼時在特權中按了錯誤的按鈕。

我沒有在這臺電腦上有任何使用的工作,所以不擔心刪除我的網站。

  • 我第一次卸載MAMP Pro(我在Launchpad中有一個圖標)。
  • 然後我從應用程序文件夾中刪除了MAMP目錄。
  • 然後我從網上下載重新安裝了MAMP。
  • 然後,我刪除了我的所有cookies,緩存等來自safari。
  • 我關閉我的電腦並重新啓動。

我現在可以在MAMP啓動後通過啓動頁面上的鏈接訪問phpMyAdmin。

+0

這項工作,而不會丟失您現有的設置,用戶和數據庫? – Debiprasad 2013-01-24 10:23:42

0

好的,停止運行你的MySQL,並打開它隨附的安裝文件。應該有一個名爲resetroot.bat的bat文件。運行它,你的問題就會消失。

5

我剛剛得到了同樣的問題。我在Windows 7上使用Xammp。我意外地刪除了phpmyadmin中的root用戶。

看來我是能夠解決這個問題的簡單的路線是這樣的:

停止XAMMP控制

圍棋的Apache和MySQL到.../XAMMP/MySQL的

你會請參閱文件「resetroot」。運行此文件

這個應用程序完成後,重新啓動你的MySQL和Apache

進入phpMyAdmin的,你會看到root用戶恢復

現在你可以使用再次訪問所有的數據庫

+0

不錯的答案亞歷克斯,這是我一直在尋找 – 2014-07-08 10:45:45

3

甲基苯丙胺。我創建了另一個用戶時刪除root用戶的常見錯誤,我被鎖定了!

所以我發現這個職位,並試圖遵循的方向,但...

我得到這個errores: -bash:mysql的:命令試圖執行命令的mysql命令時沒有發現,後來我得到這個錯誤 刪除命令拒絕給表'用戶'的用戶'''本地主機'當tring設置適當的特權給根用戶和做任何事與該用戶一次mysql在外殼。

所以之前我可以使用命令埃裏克·羅蘭的評論(感謝你們爲) 這是我做過什麼

我需要啓動mysqld妥善所謂 我不得不做以下

  1. 停止mysqld進程發現

    ps aux | grep mysql

and stop the mamp interface application aswell..

  1. ,並停止與

    kill -9 [pid]

do make sure no mysql process are running before you go any further.

  1. 發現任何mysql進程,然後我不得不從實際位置在那裏我有正常重啓mysqld MySQL的二進制文件 這commnad將啓動mysld不要求輸入密碼(有點像在安全模式)

/Applications/MAMP/Library/bin/mysqld --skip-grant-tables --skip-networking &

我試着用my.cnf文件,但不能讓它開始工作。

  1. 然後我不得不去到MySQL在外殼

/Applications/MAMP/Library/bin/mysql -u root -p

(如果提示輸入密碼,只需點擊進入)

  1. 然後執行命令,Eric和羅蘭多貼,這次我沒有得到任何錯誤「刪除命令拒絕給用戶''''本地主機'的表'用戶'」如果你這樣做,你沒有正確啓動mysqld

  2. 然後停止mysqld服務:

/Applications/MAMP/Library/bin/mysqld stop

然後重新甲基苯丙胺像往常一樣與GUI

,並全部開工,因爲它以前又要開始工作了......我感到很放鬆! !

2小時恐慌和反覆試驗與控制檯的...寶貴的教訓..

如果我搞砸了任何命令或解釋(這可能是因爲我是跟蹤我的腳步的情況下早在寫這篇文章,請讓我知道,我很樂意更新帖子。

最後不放棄,這是可以做到!

1

只是想貢獻我如何解決這一點。如果您不小心刪除了MAMP PRO中的root用戶,並且正在使用帶Time Machine備份的OSX。只需在Finder中找到該文件夾​​:

/庫/ Application Support/appsolute/

然後從頂部的菜單欄 '進入Time Machine',恢復近期的MAMP PRO文件夾的備份。爲我省了很多麻煩。