MySQL 8.0 リファレンスマニュアル


MySQL 8.0 リファレンスマニュアル  /  ...  /  Microsoft Windows MySQL Server インストールのトラブルシューティング

2.3.5 Microsoft Windows MySQL Server インストールのトラブルシューティング

MySQL をインストールして最初に起動する際に、エラーが発生して MySQL サーバーが起動できない場合があります。 このセクションは、エラーの診断と修正に役立ちます。

サーバーの問題のトラブルシューティングを行う際の、最初のリソースは エラーログです。 MySQL Server は、サーバーが起動しない原因となるエラーに関する情報を記録するのにエラーログを使用しています。 エラーログは、my.ini ファイルで指定された データディレクトリにあります。 データディレクトリのデフォルトの場所は、Windows 7 および Windows Server 2008 では C:\Program Files\MySQL\MySQL Server 8.0\data、または C:\ProgramData\Mysql です。 C:\ProgramData ディレクトリはデフォルトでは非表示です。 ディレクトリと内容を表示するには、フォルダオプションを変更する必要があります。 エラーログとその内容の理解については、セクション5.4.2「エラーログ」 を参照してください。

起こりうるエラーについては、MySQL サービスの起動中に表示されるコンソールメッセージも調べてください。 mysqld をサービスとしてインストールした後、コマンドラインから SC START mysqld_service_name または NET START mysqld_service_name コマンドを使用して、MySQL サーバーのサービスとしての起動に関するエラーメッセージを表示します。 セクション2.3.4.8「Windows のサービスとして MySQL を起動する」を参照してください。

MySQL をインストールしてサーバーを最初に起動する際によく生じる、その他の一般的なエラーメッセージを次の例に示します。

  • MySQL Server が mysql 権限データベースまたはその他の重要なファイルを見つけられない場合、次のメッセージを表示します。

    System error 1067 has occurred.
    Fatal error: Can't open and lock privilege tables:
    Table 'mysql.user' doesn't exist

    これらのメッセージは、MySQL のベースディレクトリまたはデータディレクトリが、デフォルトの場所 (それぞれ C:\Program Files\MySQL\MySQL Server 8.0 および C:\Program Files\MySQL\MySQL Server 8.0\data) と異なる場所にインストールされている場合によく生じます。

    この状況は、MySQL をアップグレードして新しい場所にインストールしたが、構成ファイルが新しい場所を反映するように更新されていない場合に生じます。 さらに、新旧の構成ファイルが対立している場合もあります。 MySQL をアップグレードする際は必ず旧構成ファイルを削除するか名前を変更してください。

    MySQL を C:\Program Files\MySQL\MySQL Server 8.0 以外のディレクトリにインストールした場合は、構成 (my.ini) ファイルを使用して MySQL Server がそのことを認識できるようにしてください。 my.ini ファイルを Windows ディレクトリ (通常 C:\WINDOWS) に置きます。 WINDIR 環境変数の値から正確な場所を割り出すためには、コマンドプロンプトから次のコマンドを発行します。

    C:\> echo %WINDIR%

    オプションファイルはノートパッドなどのテキストエディタで作成および変更できます。 たとえば、MySQL が E:\mysql にインストールされていて、データディレクトリが D:\MySQLdata にある場合は、オプションファイルを作成して [mysqld] セクションを設定し、basedir および datadir オプションの値を指定できます。

    [mysqld]
    # set basedir to your installation path
    basedir=E:/mysql
    # set datadir to the location of your data directory
    datadir=D:/MySQLdata

    Microsoft Windows のパス名は、オプションファイル内でバックスラッシュではなく (フォワード) スラッシュを使用して指定されます。 バックスラッシュを使用する場合は、2 つ使用します。

    [mysqld]
    # set basedir to your installation path
    basedir=C:\\Program Files\\MySQL\\MySQL Server 8.0
    # set datadir to the location of your data directory
    datadir=D:\\MySQLdata

    オプションファイル値でのバックスラッシュの使用に関するルールは セクション4.2.2.2「オプションファイルの使用」 にあります。

    MySQL 構成ファイルの datadir の値を変更する場合は、MySQL Server を再起動する前に既存の MySQL データディレクトリの内容を移動する必要があります。

    セクション2.3.4.2「オプションファイルの作成」 を参照してください。

  • まず既存の MySQL サービスを停止して削除してから MySQL Installer を使用して MySQL をインストールせずに、MySQL を再インストールまたはアップグレードすると、次のエラーが生じる場合があります。

    Error: Cannot create Windows service for MySql. Error: 0

    これは Configuration Wizard がサービスをインストールしようとしたときに既存のサービスが同じ名前で存在する場合に発生します。

    この問題の解決方法の 1 つは、Configuration Wizard を使用する際にmysql 以外のサービス名を選択することです。 これにより、新しいサービスが正しくインストールされ、古いサービスはそのままにできます。 これは特に問題はありませんが、使用しない古いサービスは削除したほうがよいでしょう。

    古い mysql サービスを完全に削除するには、管理者権限を持つユーザーとして、コマンド行で次のコマンドを実行します。

    C:\> SC DELETE mysql
    [SC] DeleteService SUCCESS

    ご使用のバージョンの Windows で SC ユーティリティを使用できない場合は、http://www.microsoft.com/windows2000/techinfo/reskit/tools/existing/delsrv-o.asp から delsrv ユーティリティをダウンロードし、delsrv mysql 構文を使用します。


関連キーワード:  インストール, Server, 起動, サービス, ディレクトリ, サーバー, 構成, データ, ソース, 一般