はじめに
タスクマネージャーを確認していたところ、MySQLがバックグラウンドで常に約380MBほどメモリを使用していることに気づきました。
PCではプログラミングだけでなくゲームや動画編集も行っています。
そのため、MySQLを使っていない時間にもメモリを消費しているのは少しもったいないと感じました。
そこで、MySQLのスタートアップを停止し、「プログラミングをするときだけ起動する」構成に変更し、不要なメモリ消費を抑えることにしました。
目次
- 1. MySQLが常駐していた原因
- 2. MySQLのスタートアップを手動に変更する方法
- 3. 管理者PowerShellでMySQLを起動・停止する方法
- 4. VSCodeのtasks.jsonで自動化を試した話(おまけ)
- 5. おわりに
1. MySQLが常駐していた原因
原因は、MySQLがWindowsの「サービス」として自動起動されていたためです。
MySQLをインストールすると、Windows起動時に自動でバックグラウンド起動する設定になっていることがあります。
そのため、実際にはMySQLを使っていなくても、常にメモリを消費し続けていました。
私の環境では、タスクマネージャーを見ると約380MB程度使用していました。
開発中であれば問題ありませんが、ゲームや動画編集などメモリを使う作業をする際には、少しでも空きメモリを増やしたかったため、不要時は停止することにしました。
2. MySQLのスタートアップを手動に変更する方法
まずは、Windows起動時にMySQLが自動起動しないように設定を「手動」に変更します。
これにより、必要なときだけ自分で起動できるようになります。
設定手順
- Win + R を押す
- 「services.msc」と入力してEnter
- サービス一覧から「MySQL80」を探す
- ダブルクリックして開く
- 「スタートアップの種類」を「手動」に変更
- 「停止」を押す
※MySQL80という名前は環境によって異なる場合があります。
この設定を行うことで、PC起動時にMySQLが自動起動しなくなり、普段のメモリ使用量を減らすことができます。
3. 管理者PowerShellでMySQLを起動・停止する方法
MySQLを「手動」に変更した後は、開発時だけ自分で起動する必要があります。
これは管理者PowerShellで行うことにしました。
管理者PowerShellの起動方法
- スタートメニューを開く
- 「PowerShell」と検索(開く頻度が高い場合はタスクバーなどにピン止めしておく)
- 「Windows PowerShell」を右クリック
- 「管理者として実行」を選択
ウィンドウタイトルに以下のように表示されていればOKです。
管理者: Windows PowerShell
その後、以下のコマンドを実行します。
MySQLを起動する場合
net start MySQL80 あるいは Start-Service -Name MySQL80
成功すると以下のように表示されます(Start-Service -Name MySQL80で起動すると表示されない)。
MySQL80 サービスは正常に開始されました。
MySQLを停止する場合
net stop MySQL80 あるいは Stop-Service -Name MySQL80
サービス管理コマンドについてはこちら:サービスの管理 - PowerShell(Microsoft公式)
また、スタートアップを無効化した手順で開いた「サービス一覧画面」でMySQLの起動/停止を行っても構いません。
自分が楽だと思う方を選んでください。
4. VSCodeのtasks.jsonで自動化を試みた話(おまけ)
最初はVSCodeからワンクリックでMySQLを起動できるようにしようと思い、tasks.jsonを使った方法も試しました。
.vscode/tasks.json に以下のような設定を書きました。
{ "version": "2.0.0", "tasks": [ { "label": "Start MySQL", "type": "shell", "command": "net start MySQL80", "problemMatcher": [] } ] }
しかし、実行すると以下のエラーが発生しました。
システム エラー 5 が発生しました。 アクセスが拒否されました。
これは、Windowsサービスの操作には管理者権限が必要だからです。
つまり、VSCode自体を「管理者として実行」する必要がありました。
ただ、VSCodeを常に管理者権限で起動すると、GitやSSH接続時に問題が起きる可能性があります。
通常権限と管理者権限では扱われるユーザー環境が異なるため、以下のような問題が起きる場合があります。
- GitHub認証情報が認識されない
- SSHキーが読み込まれない
- Gitの設定が別扱いになる
- VSCode拡張機能が高権限で動作してしまう
そのため、最終的には「VSCodeは通常権限のまま」「MySQL操作だけ管理者PowerShellで行う」という構成に落ち着きました。
5. おわりに
今回は、Windows11環境でMySQLのスタートアップを停止し、必要なときだけ起動する構成に変更する方法を紹介しました。
MySQLは便利ですが、開発時しか使用しない場合は常時起動しておく必要がありません。
他の作業でメモリを多く使用する場合は、不要なバックグラウンドサービスを停止するだけでも快適さが変わることがあります。