1.

MySQL の起動方法 (Windows)

▶
この記事の要点
  • Windows の MySQL は通常「Windows サービス」として動かし、net start サービス名 で起動、net stop サービス名 で停止する
  • MySQL Installer で入れた場合、サービス名は MySQL80 のようにバージョン番号付きになっていることが多い。まずサービス名を確認する
  • ZIP 版を手動で入れた場合は、管理者権限で mysqld --install を実行してサービス登録する(既定のサービス名は MySQL)
  • 「システム エラー 5」は管理者権限が無いのが原因。コマンドプロンプトを「管理者として実行」する
  • 起動に失敗したらデータディレクトリの .err ファイルを読む
  • XAMPP の MySQL(MariaDB)はコントロールパネルから起動するのが基本

最短手順

MySQL がすでにサービスとして登録されているなら、管理者として開いたコマンドプロンプトで次の 2 行を実行するだけです。

sc query type= service state= all | findstr /i mysql
net start MySQL80

1 行目で表示された SERVICE_NAME を 2 行目の MySQL80 の部分に指定します。「MySQL80 サービスは正常に開始されました。」と表示されれば起動完了です。停止は net stop MySQL80 です。

サービスが見つからない場合は、MySQL がインストールされていないか、サービス登録されていません。以下の手順を順に確認してください。

前提

MySQL のインストールが完了していることを前提とします。完了していない方はこちらを参照してください。本稿は Windows 10 / 11 を対象とします。

Windows 版 MySQL の入れ方には主に次の 3 種類があり、起動方法が少し異なります。

入れ方サービス登録起動方法
MySQL Installer(MSI)インストール時に自動登録(名前は MySQL80 など)net start またはサービス画面
ZIP アーカイブ版自分で mysqld --install するnet start またはサービス画面
XAMPP 同梱(MariaDB)既定では登録しないXAMPP Control Panel の Start ボタン

環境変数(PATH)の設定

コマンドプロンプトから mysql や mysqld を実行できるように、MySQL の bin ディレクトリ(例: C:\Program Files\MySQL\MySQL Server 8.0\bin)を環境変数 PATH に追加しておきます。

環境変数の設定方法はこちら。コマンドプロンプトの開き方はこちら。

PATH を変更したら、開いていたコマンドプロンプトは閉じて開き直してください。開き直さないと新しい PATH が反映されません。

MySQL をサービスとして登録する(ZIP 版の場合)

ZIP 版を展開しただけの場合は、まずデータディレクトリを初期化してから、サービスとして登録します。管理者としてコマンドプロンプトを開き、以下を実行します。

cd "C:\mysql\bin"
rem データディレクトリの初期化(初回のみ)。root の仮パスワードは .err ログに出力される
mysqld --initialize --console

rem サービスとして登録(サービス名を省略すると MySQL になる)
mysqld --install

rem 設定ファイルとサービス名を指定する場合
rem mysqld --install MySQL80 --defaults-file="C:\mysql\my.ini"

「Service successfully installed.」と表示されれば成功です。

「Install/Remove of the Service Denied!」と表示された場合は、管理者として実行できていません。スタートメニューで「cmd」を検索し、右クリックから「管理者として実行」を選んで開き直してください。

サービス一覧に MySQL が登録されたので、そちらから起動・停止をすることもできます(サービスの確認方法はこちら)。登録を取り消すときは mysqld --remove サービス名 を実行します。

MySQL の起動と停止

コマンドプロンプト(管理者)で以下のコマンドを実行しましょう。サービス名の大文字・小文字は区別されません。

net start mysql
net stop mysql

PowerShell を使う場合は次のコマンドでも同じことができます。

Get-Service *mysql*
Start-Service MySQL80
Stop-Service MySQL80

GUI で操作したい場合は、Win + R で「services.msc」を開き、MySQL のサービスを右クリックして「開始」「停止」を選びます。同じ画面の「スタートアップの種類」を「自動」にしておくと、Windows 起動時に MySQL も自動で起動します。

起動できないときの原因と対処

表示されるメッセージ原因と対処
システム エラー 5 が発生しました。アクセスが拒否されました。管理者権限がありません。コマンドプロンプトを管理者として実行します
サービス名が無効です。サービス名が違うか、未登録です。sc query で正しい名前を確認します
MySQL サービスを開始できませんでした。設定ファイルの誤り、データディレクトリの破損や権限、ポート競合などです。データディレクトリ内の「ホスト名.err」ファイルの最後の数行に具体的な理由が書かれています
サービスは開始されましたが、すぐに停止した上と同じく .err ファイルを確認します。my.ini の datadir や basedir のパスの誤りが典型です

ポート 3306 を別のプロセスが使っていないかは netstat -ano | findstr :3306 で確認できます。XAMPP の MariaDB と MySQL を両方入れていると、同じポートを取り合って片方が起動できないことがよくあります。

サービスを使わずに原因を調べたいときは、mysqld --console でフォアグラウンド起動すると、エラーメッセージがそのまま画面に表示されます。

起動できたかの確認方法

sc query MySQL80
mysql -u root -p -e "SELECT VERSION();"

sc query の STATE が RUNNING になっていて、mysql コマンドでバージョンが表示されれば、MySQL は正常に動いています。

関連

Post Share
子ページ

子ページはありません

同階層のページ
  1. MySQLの起動(Windows)
  2. MySQLの起動、停止、再起動(Linux)
  3. MYSQL への接続
  4. データベース一覧の表示
  5. データベースへの接続
  6. テーブル一覧を表示
  7. テーブル定義を確認
  8. ユーザーおよびパスワード一覧の確認