mysqladmin というコマンドを聞いたことはあるけれど、実際にどう使うのかわからない」——そう感じているLinuxサーバー管理者の方は多いはずです。MySQLには、サーバーの管理操作をコマンドラインから実行するための専用ツール
mysqladmin が付属しています。接続確認・ステータス表示・ログフラッシュ・シャットダウンなど、現場で頻繁に使う操作をワンコマンドで実行できます。この記事では、Rocky Linux 9系/Ubuntu 24.04 LTSを想定環境として、
mysqladmin の基本的な接続方法から実務でよく使うコマンドの書き方・出力例まで解説します。この記事のポイント
・mysqladminはMySQL付属の管理CLIツールで別途インストール不要
・mysqladmin pingでサーバーの生存確認が数秒でできる
・flush-logsでバイナリログをローテート、flush-privilegesで権限を即時反映できる
・--defaults-extra-fileでパスワードをファイルから安全に渡す方法も解説する
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
mysqladminとは何か|MySQLサーバー管理専用のCLIツール
mysqladmin は、MySQLサーバーのインストールに同梱されているコマンドラインツールです。サーバーへの接続確認・稼働状態の表示・内部変数のフラッシュ・シャットダウンなど、DB管理者が日常的に行う管理操作をSQLを使わずに実行できます。MySQLのクライアントパッケージ(
mysql-client または mysql パッケージ)をインストールした時点で利用可能になるため、別途インストール作業は不要です。Rocky Linux 9系では mysql パッケージに同梱されており、Ubuntu 24.04 LTSでは mysql-client-core-8.0 に含まれています。mysqladminの基本的な使い方|接続オプションと認証
mysqladmin の基本構文は次のとおりです。mysqladmin [接続オプション] コマンド [コマンドオプション]
・-h ホスト名:接続先のホスト名またはIPアドレス(省略時はlocalhost)
・-P ポート番号:TCPポート(省略時は3306)
・-u ユーザー名:MySQLのユーザー名
・-p:パスワードを対話入力で求める(引数なしが推奨)
・--defaults-extra-file=ファイル:認証情報をファイルから読み込む(後述)
コマンド名は省略可能です。たとえば
processlist は proc と短縮できます。ただし現場では誤解のない完全形式を使うほうが保守性が高まります。1. ヘルプ表示でコマンド一覧を確認する
mysqladmin --help を実行すると、利用可能なコマンドの一覧が表示されます。コマンドが多いため、初めて使う場合は全体像を把握するために一度確認しておくとよいでしょう。mysqladmin --help
mysqladmin Ver 8.0.xx Distrib 8.0.xx, for Linux on x86_64 ... Where command is a one or more of: (Commands may be shortened) create databasename Create a new database drop databasename Delete a database and all its tables extended-status Gives an extended status message from the server flush-logs Flush all logs flush-privileges Reload grant tables (same as reload) flush-status Clear status variables flush-tables Flush all tables kill id,id,... Kill mysql threads password [new-password] Change old password to new-password ping Check if mysqld is alive processlist Show list of active threads in server reload Reload grant tables shutdown Take server down status Gives a short status message from the server variables Prints variables available version Get version info from server
サーバーの状態を確認する
1. pingでサーバーの応答を確認する
mysqladmin ping は、MySQLサーバーが起動して接続を受け付けているかを最短で確認できるコマンドです。スクリプトからの死活監視や、サービス再起動後の確認によく使います。mysqladmin -u root -p ping
Enter password: mysqld is alive
mysqladmin: connect to server at 'localhost' failed error: 'Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)' Check that mysqld is running and that the socket: '/var/lib/mysql/mysql.sock' exists!
2. statusでスレッドや稼働時間を確認する
mysqladmin status はサーバーの稼働時間・スレッド数・処理クエリ数などのサマリーを表示します。mysqladmin -u root -p status
Uptime: 86400 Threads: 2 Questions: 15432 Slow queries: 0 Opens: 120 Flush tables: 1 Open tables: 113 Queries per second avg: 0.179
・Threads:現在の接続スレッド数
・Slow queries:実行時間が
long_query_time を超えたクエリ数(0が理想)・Queries per second avg:平均QPS(クエリ毎秒)
より詳細な変数情報を確認したい場合は
mysqladmin -u root -p extended-status を使うと、Com_select や Innodb_buffer_pool_reads など内部カウンタが一覧表示されます。3. processlistで接続中プロセスを確認する
mysqladmin processlist は、現在MySQLに接続しているセッションの一覧を表示します。長時間実行中のクエリや、スリープ状態のまま残っているコネクションを素早く確認できます。mysqladmin -u root -p processlist
+----+------+-----------+----+---------+------+-------+------------------+ | Id | User | Host | db | Command | Time | State | Info | +----+------+-----------+----+---------+------+-------+------------------+ | 8 | root | localhost | | Query | 0 | init | show processlist | +----+------+-----------+----+---------+------+-------+------------------+
mysqladmin kill プロセスID を使います。複数指定する場合はカンマ区切りで mysqladmin kill 8,9,10 のように書きます。サーバーの管理操作を実行する
1. flush-logsでバイナリログをローテートする
バイナリログをローテートして新しいログファイルを開始します。mysqldump でのバックアップ直後に新しいバイナリログを開始したい場合など、定期バックアップフローの中でよく使います。mysqladmin -u root -p flush-logs
SHOW MASTER STATUS; でバイナリログのファイル名と番号が進んでいることを確認できます。2. flush-tablesで全テーブルのキャッシュをフラッシュする
flush-tables は、開いているすべてのテーブルをクローズしてキャッシュをフラッシュします。ファイルシステムレベルのコールドバックアップの前処理としても使われます。mysqladmin -u root -p flush-tables
3. flush-privilegesでGRANT設定を即時反映する
GRANT や REVOKE 文でユーザー権限を変更した場合、flush-privileges(reload と同義)を実行するとメモリ上の権限テーブルが再読み込みされます。mysqladmin -u root -p flush-privileges
GRANT/REVOKE 実行後に自動で権限が反映されるため、通常は明示的な flush-privileges は不要です。my.cnf を直接変更してユーザーテーブルを書き換えた場合には引き続き必要になります。4. shutdownでMySQLサーバーを安全に停止する
mysqladmin shutdown は、MySQLサーバーを安全にシャットダウンします。実行中のトランザクションが完了してからサーバーが停止するため、強制終了によるデータ破損のリスクを抑えられます。mysqladmin -u root -p shutdown
systemctl stop mysqld と結果は同等ですが、リモートホストのMySQLを停止したい場合は次のように使えます。mysqladmin -h 192.168.1.10 -u root -p shutdown
実務Tips|mysqladminを安全に使うポイント
1. パスワードをコマンドラインに直書きしない
-p パスワード のようにパスワードを引数に直書きすると、ps aux の出力や history コマンドでパスワードが見えてしまいます。# NG例: パスワードが history に残る mysqladmin -u root -pMyPassword123 ping # 推奨: -p だけ書くと対話入力になる mysqladmin -u root -p ping
2. --defaults-extra-fileでパスワードを安全に渡す
スクリプトからパスワード入力なしでmysqladmin を実行したい場合は、専用の認証ファイルを --defaults-extra-file で指定します。# 認証ファイルを作成(所有者のみ読み取り可) cat > /root/.my-mysqladmin.cnf << 'CNFEOF' [client] user=root password=yourpassword CNFEOF chmod 600 /root/.my-mysqladmin.cnf # ファイル指定でパスワード入力なしに実行 mysqladmin --defaults-extra-file=/root/.my-mysqladmin.cnf ping
chmod 600 で所有者のみ読み書き可能にしておきましょう。認証情報をファイルで管理するこのパターンは、cronジョブからのMySQL操作全般で活用できます。MySQLをはじめとするLinuxサーバー管理の実務を体系的に習得したい方は、Linux Master Pro Seminar のハンズオン講座でも詳しく取り上げています。「Can't connect」「Access denied」が出た時の対処法
1. 「Can't connect to local MySQL server through socket」が出た場合
ソケットファイルが見つからないというエラーです。まずMySQLが起動しているかを確認します。# Rocky Linux / RHEL系 systemctl status mysqld # Ubuntu系 systemctl status mysql
Active: inactive (dead) になっている場合はMySQLが停止しています。systemctl start mysqld で起動してから再試行します。ソケットパスがデフォルト(/var/lib/mysql/mysql.sock)と異なる場合は -S /path/to/mysql.sock オプションで明示指定します。2. 「Access denied for user 'root'@'localhost'」が出た場合
パスワードが間違っているか、指定ユーザーにSHUTDOWN 等の権限がない場合に発生します。root ユーザーに権限を付与するには MySQL CLI から次のSQLを実行します。-- MySQL CLIから実行 GRANT SHUTDOWN ON *.* TO 'root'@'localhost'; FLUSH PRIVILEGES;
本記事のまとめ|mysqladminコマンド早見表
| やりたいこと | コマンド |
|---|---|
| サーバー生存確認 | mysqladmin -u root -p ping |
| 稼働時間・スレッド数を確認する | mysqladmin -u root -p status |
| 詳細な内部統計を確認する | mysqladmin -u root -p extended-status |
| 接続中プロセスを一覧表示する | mysqladmin -u root -p processlist |
| 特定プロセスを強制終了する | mysqladmin -u root -p kill プロセスID |
| バイナリログをローテートする | mysqladmin -u root -p flush-logs |
| 全テーブルのキャッシュをフラッシュする | mysqladmin -u root -p flush-tables |
| 権限テーブルを再読み込みする | mysqladmin -u root -p flush-privileges |
| MySQLサーバーを安全に停止する | mysqladmin -u root -p shutdown |
| 認証ファイルを使って実行する | mysqladmin --defaults-extra-file=/root/.my-mysqladmin.cnf ping |
mysqladmin はMySQL管理の入口となるシンプルなツールです。サーバーの状態確認からフラッシュ操作・シャットダウンまで、日常的なDB運用タスクを迅速にこなすためにぜひ覚えておきましょう。
現場で通用する安全なLinuxサーバー構築の「型」を体系的に身につけたい方へ、
MySQL・MariaDBなどのデータベース管理を含む2日間ハンズオンセミナーをご用意しています。
>> Linux Master Pro Seminar の詳細はこちら
3,100名以上が実践した「型」を無料で公開中
プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。
姓・名・メールの3つだけ/30秒/解除は3秒 / 詳細はこちら
- 前のページへ:MySQLのmy.cnfでパフォーマンスチューニングをする方法|InnoDBバッファプールと主要変数の設定
- この記事の属するカテゴリ:データーベース管理へ戻る

無料メルマガで学習を続ける
Linuxの実践スキルをメールで毎週お届け。
登録は30秒、解除もいつでも可。
登録無料・いつでも解除できます