web-dev-qa-db-ja.com

WAMPでPHPMyAdminの失われたMySQLパスワードへのアクセスを回復する

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 */
9
Eamon Bohan

これは、MYSQLの「root」パスワードを非常に簡単にリセットできる方法です。

Mysqlサービスを停止します

wampmanager -> MySQL -> Service -> Stop Service

My.iniファイルを編集する

wampmanager -> MySQL -> my.ini

Iniファイルで[wampmysqld](32bit)または[wampmysqld64](64bit)セクションを見つけます

この行をセクション見出しの直後に追加します

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';
ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
FLUSH PRIVILEGES;

更新によって複数の行が更新されたことが報告される場合があることに注意してください。これは、「root」のユーザーIDを持つ複数のユーザーアカウントがあり、それぞれが異なるドメイン、つまり127.0.0.1を持つためです。 、localhostおよび:: 1

Mysqlコマンドプロンプトで「quit」と入力して、mysqlを存在させます。

Mysqlサービスを停止します

wampmanager -> MySQL -> Service -> Stop Service

My.iniファイルを編集する

wampmanager -> MySQL -> my.ini

Iniファイルで[wampmysqld](32bit)または[wampmysqld64](64bit)セクションを見つけます

前に追加したskip-grant-tablesパラメータを削除します。

このパラメータをiniファイルに残してはいけません。非常に大きなセキュリティホールになります。

Mysqlサービスを再起動します。

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

これで、ユーザーID「root」とそのユーザーに設定した新しいパスワードを使用して、phpmyadminでログインできるはずです。

30
RiggsFolly

これは私のWampserver64-3.1.9で機能しました。ありがとう。

    UPDATE mysql.user SET authentication_string=PASSWORD('MyNewPass') WHERE User='root';
    ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
    FLUSH PRIVILEGES;
1
Ljubomir Lukić

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サービスを再起動します。

1
Mario Orozco