![](/img/trans.png)
[英]Unable to access MySQL from phpMyAdmin after setting root password in EasyPHP{WAMP}
[英]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.