簡體   English   中英

在 WAMP 上重新獲得對 PHPMyAdmin 丟失的 MySQL 密碼的訪問權限

[英]Regaining access to lost MySQL password for PHPMyAdmin on WAMP

我在 PHPMyAdmin 中更改了我的'root'@'localhost'帳戶的密碼( 此人在這里問),並在瀏覽器上將自己鎖定在 PHPMyAdmin 之外。 我正在使用 WAMP 2.5。

在該問題上提供的解決方案對我不起作用,因為不幸的是我丟失了重新分配root的密碼。

一些解決方案要求通過命令行( 包括此源)重置密碼,我已經通過 Windows 命令行嘗試過但沒有成功,因為我現在沒有權限:

mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('mynewpassword');

ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'mysql'

WAMP 附帶一個 MySQL 控制台,但我無法使用它,因為它提示我輸入密碼,正如我所說,不再有。

這個視頻解釋了如何更改密碼,它與上面 StackExchange 答案中的答案一致,但顯然,我現在需要另一種方法來做到這一點,因為我不知道我會像那個人警告的那樣失去訪問權限。

如果這是新手要問的問題,我將不勝感激。 我剛剛掌握了使用堆棧進行 Web 開發的竅門,並且通過 WAMP 配置對 LAN 站點的訪問是一次冒險,所以如果可能的話,我更喜歡不需要重新安裝所有東西的東西。

編輯 1 :繼續嘗試@RiggsFolly 的解決方案。 雖然我可以訪問my.ini文件,毫無問題地進行更改,並通過 WAMP 或其他方式毫無問題地重新啟動 MySQL,但skip-grant-tables行沒有生效,讓我得到密碼提示或無法執行任何操作。 (我在這里寫了一個新問題來解決這個問題,因為我覺得這是一個不同的問題。)

編輯 2 :我嘗試了@t.niese 在評論中提供的鏈接中的說明,當我將控制台設置為返回對說明的反饋時,它報告了這一點,但沒有更改任何內容:

C:\wamp\bin\mysql\mysql5.6.17\bin>mysqld --skip-grant-tables --console
[Note] Plugin 'FEDERATED' is disabled.
[Note] InnoDB: Using atomics to ref count buffer pool pages
[Note] InnoDB: The InnoDB memory heap is disabled
[Note] InnoDB: Mutexes and rw_locks use Windows interlocked functions
[Note] InnoDB: Compressed tables use zlib 1.2.3
[Note] InnoDB: Not using CPU crc32 instructions
[Note] InnoDB: Initializing buffer pool, size = 128.0M
[Note] InnoDB: Completed initialization of buffer pool
[ERROR] InnoDB: .\ibdatai can't be opened in read-write mode
[ERROR] InnoDB: The system tablespace must be writabe!
[ERROR] Plugin 'InnoDB' init function returned error.
[ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
[ERROR] Unknown/unsupported storage engine: InnoDB
[ERROR] Aborting
[Note] /* List of plugins shutting down */

這是一種允許您非常簡單地重置MYSQL“root”密碼的方法。

停止mysql服務

wampmanager -> MySQL -> Service -> Stop Service

編輯 my.ini 文件

wampmanager -> MySQL -> my.ini

在ini文件中找到[wampmysqld] (32位)或[wampmysqld64] (64位)部分

在該部分標題之后直接添加此行

skip-grant-tables

重啟mysql服務。

wampmanager -> MySQL -> Service -> Start/Resume Service

打開 MySQL 控制台

wampmanager -> MySQL -> MySQL Console

現在我們要重置 root 用戶的密碼,當然這可以用來重置任何用戶的密碼。

mysql>命令提示符下輸入以下 2 個命令,每個命令在一行末尾都有一個分號,並在每行后按 ENTER 向 mysql 發出命令。

MYSQL 5.7 之前的版本

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

發布 MYSQL 5.7 版的列名已更改

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

請注意,更新可能會報告它更新了不止一行,因為可能有多個用戶帳戶為“root”,每個帳戶都具有不同的域,即 127.0.0.1、localhost 和 ::1

現在在 mysql 命令提示符處輸入 'quit' 以存在 mysql。

停止mysql服務

wampmanager -> MySQL -> Service -> Stop Service

編輯 my.ini 文件

wampmanager -> MySQL -> my.ini

在ini文件中找到[wampmysqld] (32位)或[wampmysqld64] (64位)部分

刪除我們之前添加的skip-grant-tables參數。

不要將此參數保留在 ini 文件中,因為這是一個巨大的安全漏洞。

重啟mysql服務。

wampmanager -> MySQL -> Service -> Start/Resume Service

您現在應該可以使用用戶 ID 'root' 和您剛剛為該用戶設置的新密碼通過 phpmyadmin 登錄。

以前的答案對我不起作用,因為 MySQL 控制台在按介紹后讓我離開。 嘗試這個:

使用以下內容創建文件C:\\wamp64\\mysql-init.txt

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

這會將用戶root 的密碼重置為1234 然后,在 Windows 命令行上運行下一個命令:

C:\wamp64\bin\mysql\mysql5.7.21\bin\mysqld.exe wampmysqld --init-file=C:\\wamp64\\mysql-init.txt

根據文件系統上安裝 WAMP 的位置更改路徑。

最后,重啟 WAMP 服務。

我在PHPMyAdmin中更改了我的'root'@'localhost'帳戶的密碼,並且喜歡了( 此人在這里詢問),並將自己鎖定在瀏覽器中的PHPMyAdmin之外。 我正在使用WAMP 2.5。

針對該問題提供的解決方案對我不起作用,因為不幸的是,我丟失了重新分配給root用戶的密碼。

一些解決方案要求人們通過命令行( 包括此源)重置密碼,而我已經嘗試通過Windows命令行進行密碼設置,但沒有成功,因為我現在沒有任何權限:

mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('mynewpassword');

ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'mysql'

WAMP帶有MySQL控制台,但是我無法使用它,因為它會提示我輸入密碼,正如我之前所說,不再使用。

該視頻說明了如何更改密碼,並且與上述StackExchange答案中的答案一致,但是顯然,我現在需要另一種方法來執行此操作,因為我不知道我會因為該人的警告而失去訪問權限。

如果有任何建議,我將不勝感激,並深表歉意。 我只是想使用堆棧進行Web開發,而通過WAMP配置對LAN站點的訪問是一個冒險,因此,如果可能的話,我希望不需要重新安裝所有內容。

編輯1 :繼續嘗試@RiggsFolly的解決方案。 雖然我可以訪問my.ini文件,進行更改,沒有問題,並且可以通過WAMP或其他方式毫無問題地重新啟動MySQL,但行skip-grant-tables並沒有生效,這給我留下了密碼提示或無法執行任何操作。 (我在這里寫了一個新問題來解決此問題,因為我覺得這是一個不同的問題。)

編輯2 :我嘗試了@ t.niese在注釋中提供的鏈接中的說明,並且當我將控制台設置為返回對說明的反饋時,它報告了此情況,但未更改任何內容:

C:\wamp\bin\mysql\mysql5.6.17\bin>mysqld --skip-grant-tables --console
[Note] Plugin 'FEDERATED' is disabled.
[Note] InnoDB: Using atomics to ref count buffer pool pages
[Note] InnoDB: The InnoDB memory heap is disabled
[Note] InnoDB: Mutexes and rw_locks use Windows interlocked functions
[Note] InnoDB: Compressed tables use zlib 1.2.3
[Note] InnoDB: Not using CPU crc32 instructions
[Note] InnoDB: Initializing buffer pool, size = 128.0M
[Note] InnoDB: Completed initialization of buffer pool
[ERROR] InnoDB: .\ibdatai can't be opened in read-write mode
[ERROR] InnoDB: The system tablespace must be writabe!
[ERROR] Plugin 'InnoDB' init function returned error.
[ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
[ERROR] Unknown/unsupported storage engine: InnoDB
[ERROR] Aborting
[Note] /* List of plugins shutting down */

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM