MySQLパスワードを再起動しようとすると、コンソールに次の出力が表示されます(これは出力の原因となった入力でもあります)。
C:> "C:\ MySQL\bin\mysqld" --console --init-file = C:\ mysql--init.txt
111008 23:42:48 [Note] Plugin 'FEDERATED' is disabled.
111008 23:42:48 InnoDB: The InnoDB memory heap is disabled
111008 23:42:48 InnoDB: Mutexes and rw_locks use Windows interlocked functions
111008 23:42:48 InnoDB: Compressed tables use zlib 1.2.3
111008 23:42:48 InnoDB: Initializing buffer pool, size = 45.0M
111008 23:42:48 InnoDB: Completed initialization of buffer pool
InnoDB: Error: log file .\ib_logfile0 is of different size 0 5242880 bytes
InnoDB: than specified in the .cnf file 0 24117248 bytes!
111008 23:42:48 [ERROR] Plugin 'InnoDB' init function returned error.
111008 23:42:48 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
111008 23:42:48 [ERROR] Unknown/unsupported storage engine: INNODB
111008 23:42:48 [ERROR] Aborting
111008 23:42:48 [Note] C:\MySQL\bin\mysqld: Shutdown complete
マニュアル の手順を実行した場合は、次のコマンドを実行する必要があります。
C:\> C:\mysql\bin\mysqld --init-file=C:\\mysql-init.txt
これは自動的にパスワードをリセットします(それを行うコマンドでファイルを書き込んだため(ステップ3))。
このコマンドが機能しない場合は、他のコマンドを実行してください。
C:\> "C:\Program Files\MySQL\MySQL Server 5.5\bin\mysqld.exe"
--defaults-file="C:\\Program Files\\MySQL\\MySQL Server 5.5\\my.ini"
--init-file=C:\\mysql-init.txt
2011年9月26日にDBA StackExchangeでこのような質問に答えました 。
この人は私の答えを受け入れました。
これはmy.iniのハックのようなもので、うまくいくはずです。
UPDATE 2011-10-19 07:12 EDT
あなたがしなければならないのはib_logfile0とib_logifle1を削除することだけです、そしてmysqldはInnoDBに2つのinnodbログファイルを再生成させます。
以前にエラーログを見ていたらよかったのに。この間ずっと、私はあなたが助成金の問題を解決するのを手伝っています。
マニュアルによると:
C.5.4.1.1。ルートパスワードのリセット:WindowsシステムWindowsでは、次の手順を使用して、すべてのMySQLルートアカウントのパスワードをリセットします。
- 管理者としてシステムにログオンします。
- MySQLサーバーが実行されている場合は停止します。 Windowsサービスとして実行されているサーバーの場合は、サービスマネージャーに移動します。[スタート]メニューから、[コントロールパネル]、[管理ツール]、[サービス]の順に選択します。リストからMySQLサービスを見つけて停止します。サーバーがサービスとして実行されていない場合は、タスクマネージャーを使用してサーバーを強制的に停止する必要があります。
次のステートメントを含むテキストファイルを作成します。パスワードを使用するパスワードに置き換えます。
UPDATE mysql.user SET Password=PASSWORD('MyNewPass') WHERE User='root'; FLUSH PRIVILEGES;
UPDATEステートメントとFLUSHステートメントをそれぞれ1行に記述します。 UPDATEステートメントはすべてのrootアカウントのパスワードをリセットし、FLUSHステートメントはサーバーに許可テーブルをメモリに再ロードしてパスワードの変更を通知するように指示します。
- ファイルを保存します。この例では、ファイルの名前は
C:\mysql-init.txt
になります。- コンソールウィンドウを開いてコマンドプロンプトを表示します。[スタート]メニューから[ファイル名を指定して実行]を選択し、実行するコマンドとしてcmdと入力します。
特別な
--init-file
オプションを使用してMySQLサーバーを起動します(オプション値の円記号が2倍になっていることに注意してください)。C:\> C:\mysql\bin\mysqld-nt --init-file=C:\\mysql-init.txt
MySQLを
C:\mysql
以外の場所にインストールした場合は、それに応じてコマンドを調整します。サーバーは、起動時に--init-file
オプションで指定されたファイルの内容を実行し、各rootアカウントのパスワードを変更します。サーバー出力をログファイルではなくコンソールウィンドウに表示する場合は、コマンドに--console
オプションを追加することもできます。 MySQLインストールウィザードを使用してMySQLをインストールした場合は、--defaults-file
オプションを指定する必要がある場合があります。C:\> "C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqld-nt.exe" --defaults-file="C:\\Program Files\\MySQL\\MySQL Server 5.0\\my.ini" --init-file=C:\\mysql-init.txt
適切な
--defaults-file
設定は、サービスマネージャを使用して見つけることができます。[スタート]メニューから、[コントロールパネル]、[管理ツール]、[サービス]の順に選択します。リストからMySQLサービスを見つけて右クリックし、[プロパティ]オプションを選択します。実行可能フィールドへのパスには、--defaults-file
設定が含まれています。 7.サーバーが正常に起動したら、C:\mysql-init.txt
を削除します。
したがって、最初にポイント3で説明したようにファイルを作成し、次にコマンドライン([スタート]-> [実行]-> [CMD(ENTER)]を使用して、そのファイルを指す--init-file
paramを指定してmysqld-nt.exeを実行する必要があります。覚えておいてください。 mysqld-nt.exeと作成したファイルの両方にフルパスを使用します。
あなたの場合、パスワードをリセットする前に、起動時の問題を修正する必要があります。
MySQLエラーログにリストされている最初のエラーに注意してください。
InnoDB: Error: log file .\ib_logfile0 is of different size 0 5242880 bytes
InnoDB: than specified in the .cnf file 0 24117248 bytes!
これは、データベースファイルを別の場所からコピーしたか、my.cnf設定を編集したために、実際のib_logfile0ファイルサイズと一致しなくなったことを意味します。最初にこの問題に焦点を合わせます。