| この記事の要点 |
|---|
|
systemd を使う方法(CentOS 7+ / Ubuntu 16.04+ / 標準)
# 起動
$ sudo systemctl start mysql
# または
$ sudo systemctl start mysqld # CentOS / RHEL の MySQL 公式パッケージ
$ sudo systemctl start mariadb # MariaDB
# 停止
$ sudo systemctl stop mysql
# 再起動
$ sudo systemctl restart mysql
# リロード(設定だけ再読み込み、可能なら)
$ sudo systemctl reload mysql
# 自動起動の有効化(OS 起動時に自動で起動)
$ sudo systemctl enable mysql
# 自動起動の無効化
$ sudo systemctl disable mysql
# 状態確認
$ sudo systemctl status mysql
● mysql.service - MySQL Community Server
Loaded: loaded (/lib/systemd/system/mysql.service; enabled)
Active: active (running) since ...
Main PID: 1234 (mysqld)
Tasks: 38
Memory: 350.2M
CGroup: /system.slice/mysql.service
└─1234 /usr/sbin/mysqld --daemonize ...
service コマンド(古い CentOS 6 / 互換層)
# CentOS 6 / 互換層
$ sudo service mysqld start
$ sudo service mysqld stop
$ sudo service mysqld restart
$ sudo service mysqld status
# Ubuntu の場合
$ sudo service mysql start
古い init スクリプト(さらに古い環境)
$ sudo /etc/init.d/mysql start
$ sudo /etc/init.d/mysql stop
$ sudo /etc/init.d/mysql restart
mysqld_safe で直接起動
# 直接起動 (root として)
$ sudo mysqld_safe --user=mysql &
# 設定ファイル指定
$ sudo mysqld_safe --defaults-file=/etc/my.cnf --user=mysql &
# シングルユーザモード(パスワードリセット用)
$ sudo mysqld_safe --skip-grant-tables --skip-networking &
停止の代替方法(mysqladmin)
# クライアントから停止コマンド
$ mysqladmin -u root -p shutdown
Enter password: ****
# 動作確認 (ping)
$ mysqladmin -u root -p ping
mysqld is alive
強制停止(kill)
サービス停止が効かない場合の最終手段:
# プロセス ID 確認
$ pgrep -f mysqld
1234
2345 # mysqld_safe の子プロセスもある
# 安全に停止 (SIGTERM)
$ sudo kill 1234
# 効かない場合 (SIGKILL = 強制)
$ sudo kill -9 1234
# 注意: SIGKILL は DB 破損リスクあり、最後の手段
状態・接続確認
① systemd status
$ sudo systemctl status mysql
# ログを直近 50 行
$ sudo journalctl -u mysql -n 50
# リアルタイム監視
$ sudo journalctl -u mysql -f
② プロセスとポート
# プロセス確認
$ ps aux | grep mysql
# ポート確認 (デフォルト 3306)
$ ss -tnlp | grep 3306
LISTEN 0 151 127.0.0.1:3306 0.0.0.0:* users:(("mysqld",pid=1234,fd=21))
# ファイルディスクリプタ
$ sudo lsof -i :3306
③ クライアントから接続テスト
# 接続できれば起動中
$ mysql -u root -p -e "SELECT VERSION();"
+-------------------------+
| VERSION() |
+-------------------------+
| 8.0.32-0ubuntu0.22.04.2 |
+-------------------------+
# ping (接続確認のみ)
$ mysqladmin -u root -p ping
mysqld is alive
# 接続数・スレッド
$ mysqladmin -u root -p status
起動しない場合のトラブルシュート
- ログを確認:
/var/log/mysql/error.log/journalctl -u mysql - 権限:
/var/lib/mysql配下が mysql:mysql 所有か - ポート競合: 3306 が他プロセス使用中
- ディスク容量:
df -hでフル? - my.cnf: 構文エラー(
mysqld --validate-config) - SELinux:
sudo setenforce 0で一時的に試す - tmpfs:
/tmpが足りない
my.cnf の場所
# 標準の検索順
$ mysql --help | grep -A 2 "Default options"
Default options are read from the following files in the given order:
/etc/my.cnf /etc/mysql/my.cnf /usr/etc/my.cnf ~/.my.cnf
# 実際に使われている設定ファイル
$ mysqld --verbose --help | grep -A 1 "Default options"
Docker で起動する場合
# 起動
$ docker run -d --name mysql8 \
-e MYSQL_ROOT_PASSWORD=secret \
-e MYSQL_DATABASE=mydb \
-p 3306:3306 \
-v mysql-data:/var/lib/mysql \
mysql:8.0
# 状態確認
$ docker ps
$ docker logs mysql8
# 停止・再起動
$ docker stop mysql8
$ docker start mysql8
$ docker restart mysql8
# 接続
$ docker exec -it mysql8 mysql -uroot -p
関連記事
子ページ
子ページはありません
同階層のページ
- MySQLの起動(Windows)
- MySQLの起動、停止、再起動(Linux)
- MYSQL への接続
- データベース一覧の表示
- データベースへの接続
- テーブル一覧を表示
- テーブル定義を確認
- ユーザーおよびパスワード一覧の確認
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript で base URL を取得する方法|window.location.origin
- 4 YouTube Data API v3 エラー一覧|403・400・404 の原因と対処
- 5 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 6 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 7 Spring Frameworkのアノテーション一覧
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- プロジェクトをTomcatプロジェクトとして認識させる方法 2026-10-07 22:32:50
- MySQLの1366 Incorrect string value|Laravelの文字コード・絵文字エラー 2026-10-07 21:54:03
- curlの証明書ホスト名不一致|旧エラー51・現行60の確認と対処 2026-10-07 21:54:03
- LaravelのMassAssignmentException|fillableの原因と安全な対処 2026-10-07 21:54:03
- Eclipse で Tomcat の起動ログがコンソールに出ない時の確認手順 2026-10-07 21:54:02
- MySQLにおける中央値(Median)の導き方(バージョン8未満) 2026-10-07 13:49:45
- getInputForward 2026-10-07 13:41:15
- JSONから配列に変換 2026-10-07 13:41:15
- ビューから値をモデルに格納しコントローラーで受け取る方法 2026-10-07 13:23:41
- Laravelのテーブル作成と定義変更|マイグレーション・up/down・注意点 2026-10-07 13:23:41
- NumPy 配列に要素を追加する方法 (append / concatenate) 2026-10-07 13:23:41
- MariaDB・MySQLで現在日時を取得する方法|NOW・タイムゾーン・保存型 2026-10-07 13:13:36
- 【django】テンプレートで定数を使用する方法 2026-10-07 13:10:15
- Spring BootにおけるApplication.propertiesの環境依存設定の分割方法 2026-10-07 12:09:35
- Not supported for DML operations【Springエラー】 2026-10-07 11:09:38