2010-11-23 100 views
14

我有一個小問題,我的phpmyadmin,其實我不小心刪除多個用戶帳戶。 因爲它是不可能沒有錯誤連接:如何重置mysql root密碼?

# 1045 - Access denied for user 'root' @ 'localhost' (using password: NO) 

我之前查了一下在網絡上,甚至是工藝:

UPDATE mysql.user SET Password = PASSWORD ('') WHERE User = 'root'; 
FLUSH PRIVILEGES; 

不工作,或者我不明白它是如何工作的。

我在FreeBSD 8.1上,我的PhpMyadmin版本是2.11。

非常感謝您的回答。

回答

16

我這裏總結了我的解決方案:http://snippets.dzone.com/posts/show/13267

sudo stop mysql 
sudo mysqld --skip-grant-tables --skip-networking 

mysql 
mysql> update mysql.user set password = password('your_new_password') where user = 'root'; 
mysql> flush privileges; 
mysql> exit; 
sudo mysqladmin shutdown 
sudo start mysql 
+1

請不要多次發佈完全相同的答案。如果問題是重複的,則將其標記爲這樣。 – Mat 2011-06-19 12:02:01

+2

從上面的代碼片段中缺失 - 儘管在非現場摘要中進行了解釋。 1)運行第一個`sudo mysqld ...`後,切換到另一個終端窗口。 2)運行mysqladmin shutdown時提示輸入新密碼: `sudo mysqladmin shutdown -u root -p` – here 2013-04-24 16:37:19

0

請按照以下鏈接中的說明重置您的root密碼。您必須從外部執行mysql。

重置密碼的MySQL

忘記你的MySQL密碼可以是一個真正的頭痛you.Here是,你可以按照在Windows 停止MySQL來恢復MySql的密碼

你必須停止MySQL的一些簡單的步驟在Windows環境中,進入「任務管理器」並在「服務」標籤下找到MySQL並停止它。 寫Sql來更改密碼

您只需要創建一個文本文件並將下面兩行放入該文件中即可。 UPDATE mysql.user SET Password = PASSWORD('MyNewPass')WHERE User ='root'; FLUSH PRIVILEGES;將其保存在C:\驅動器中,併爲其指定一個名稱'mysql-init.txt' 自己重新啓動MySQL的時間。

現在是時候重新啓動您之前停止的MySQl,但這次是從命令行停止。 C:> C:\ mysql \ bin \ mysqld -nt --init-file = C:\ mysql-init.txt 完成!

現在您可以用您的新密碼登錄。當你完成刪除你在前一階段創建的文件。

也有一個鏈接(http://kaziprogrammingblog.osinweb.com/article/showarticle/Resetting-MySql-Password),我已經解釋了同樣的事情。

希望這將有助於.. :)

4

對於MySQL 16年7月5日或以後我才發現this(從mysql.com)是有效的解決方案。下面是一些不同於以前的舊版本的點

1)我使用下面的命令在安全模式下運行mysql,根據其他一些實際上可以正常工作的引用(mysql 5.7.16 ubuntu 16.04)。

mysqld_safe --skip-grant-tables --skip-networking 

2)下面的更新stmt不適用於以後的版本(即5。7及以上)

-- NOT Working for 5.7 and later 
UPDATE mysql.user SET Password = PASSWORD ('') WHERE User = 'root'; 
FLUSH PRIVILEGES; 

而非低於用於5.7.6和以後

UPDATE mysql.user 
    SET authentication_string = PASSWORD('MyNewPass'), password_expired = 'N' 
    WHERE User = 'root' AND Host = 'localhost'; 
FLUSH PRIVILEGES; 

或低於用戶爲5.7.5或更早版本。

SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPass'); 
0

答案XAMPP在Windows上:

  • 編輯C:\ XAMPP的\ mysql的\ BIN \ my.ini文件,插入下面的[mysqld]
  • 重啓MySQL從控制跳過贈款表面板接口
  • 在phpMyAdmin窗口中,從頂部面板中選擇SQL選項卡。這將打開我們可以運行SQL查詢的SQL選項卡。現在,在文本區域下面的查詢,然後單擊轉到

UPDATE mysql.user SET Password=PASSWORD('password') WHERE User='root'; FLUSH PRIVILEGES;

  • 在my.ini文件
  • 重啓MySQL從控制面板接口
刪除跳過贈款表

完成!

請注意,mysql root用戶密碼不必與phpmyadmin的密碼相同。