MySQL サーバーへの接続方法
コマンドラインツールを使用してMySQLサーバーに接続する際の基本的な構文は以下の通りです。ホスト名、ポート番号、ユーザー名、パスワードを組み合わせて指定します。
# 基本的な接続方法
mysql -h [ホスト名] -P [ポート番号] -u [ユーザー名] -p[パスワード]
# 実行例:ローカルホストのMySQLにadminユーザーで接続
mysql -h 127.0.0.1 -P 3306 -u admin -pMySecretPass
# 注意:-p とパスワードの間にスペースを入れないでください。
# ユーザー名(-u)と名前の間はスペースを省略可能です。
# 詳細なオプション名を使用する場合
mysql --host=192.168.1.10 --user=app_user --password=app_pass
# 接続時に特定のデータベース(例:production_db)を選択する
mysql -h localhost -u root -p12345 -D production_db
MySQLセッションを終了するには、exit または quit コマンドを入力してEnterを押します。
システム情報の確認とユーティリティコマンド
サーバーの状態や現在のセッション情報を取得するための便利なコマンド群です。
-- MySQLのシステム変数を一覧表示
SHOW VARIABLES;
-- 特定の変数を検索(例:最大接続数)
SHOW VARIABLES LIKE 'max_connections';
-- 現在の日時、実行ユーザー、サーバーのバージョンを同時に取得
SELECT NOW(), USER(), VERSION();
-- Linux環境でターミナル画面をクリアする(MySQLクライアント内)
system clear
-- 指定した秒数だけ処理を一時停止させる(デバッグや負荷テスト用)
SELECT SLEEP(5);
実行中のトランザクションの監視
InnoDBストレージエンジンで現在実行されているトランザクションを確認するには、information_schema.INNODB_TRX テーブルを参照します。
-- トランザクションの詳細を表示(\G を付けると縦並びで表示され、確認が容易になります)
SELECT * FROM information_schema.INNODB_TRX\G
-- 出力例の主要項目:
-- trx_id: トランザクションID
-- trx_state: 現在の状態(RUNNINGなど)
-- trx_started: トランザクション開始時刻
-- trx_mysql_thread_id: 対応するスレッドID(後述のKILLコマンドで使用)
-- trx_query: 実行中のSQL文
プロセス管理と接続の強制終了
現在サーバーに接続しているスレッドの一覧を確認し、必要に応じてハングアップしたクエリなどを停止させます。
-- 実行中のスレッド一覧を表示
SHOW PROCESSLIST;
-- 結果の例:
-- +----+------+-----------+--------+---------+------+-------+------------------+
-- | Id | User | Host | db | Command | Time | State | Info |
-- +----+------+-----------+--------+---------+------+-------+------------------+
-- | 15 | root | localhost | sample | Query | 0 | NULL | SHOW PROCESSLIST |
-- | 18 | root | localhost | sample | Sleep | 30 | | NULL |
-- +----+------+-----------+--------+---------+------+-------+------------------+
特定のプロセスを終了させるには、KILL コマンドに上記の Id を指定します。
-- IDが18のスレッドを終了させる
KILL 18;
実行中のクエリを KILL すると、クライアント側では「Lost connection to MySQL server during query」や「MySQL server has gone away」といったエラーが返され、接続が切断されます。