InfraLab
MYSQL40 cmd

MySQL / MariaDB 運用チート集

MySQL / MariaDB の接続、ユーザー権限、DDL、EXPLAIN、バックアップ、GTID レプリケーション、Performance Schema、InnoDB 診断を整理したチート集。

更新日
2026-05-29
参照範囲
公式ドキュメント / man page / 主要ベンダーCLI
対象実装
主要 Linux / BSD / ネットワーク機器 CLI の一般的な実装
免責
OS とバージョン差分は実環境で確認してください。

このチートシートの使いどころ

MySQL / MariaDB 運用チート集は、MySQL / MariaDB の接続、ユーザー権限、DDL、EXPLAIN、バックアップ、GTID レプリケーション、Performance Schema、InnoDB 診断を整理したチート集。 対象は公式ドキュメント、man page、主要ベンダー CLI で確認できる現行の一般的な実装です。カテゴリは接続・認証、スキーマ・DDL、クエリ・EXPLAIN、バックアップ、レプリケーションを中心に、40件のコマンドや値を用途別に引けます。障害調査、設定変更前の確認、作業メモ作成で、MySQL、MariaDB、InnoDB、EXPLAIN、mysqldumpに関連する操作を短時間で探すために使います。

40 / 40

mysql -h -u -p

ホストとユーザーを指定して接続する。

Example
mysql -h db.example.com -u appuser -p appdb
mysql --ssl-mode=REQUIRED

TLS 必須で接続する。

Example
mysql --ssl-mode=REQUIRED -h db.example.com -u appuser -p appdb
SHOW DATABASES

データベース一覧を表示する。

Example
SHOW DATABASES;
SHOW TABLES

テーブル一覧を表示する。

Example
SHOW TABLES FROM appdb;
DESCRIBE

テーブル定義を確認する。

Example
DESCRIBE appdb.orders;
\G

縦表示で長い行を読みやすくする。

Example
SHOW ENGINE INNODB STATUS\G
CREATE USER

ユーザーを作成する。

Example
CREATE USER 'appuser'@'10.%' IDENTIFIED BY 'change-me';
GRANT

権限を付与する。

Example
GRANT SELECT, INSERT, UPDATE ON appdb.* TO 'appuser'@'10.%';
CREATE ROLE

MySQL 8 のロールを作成する。

Example
CREATE ROLE 'app_readonly'; GRANT SELECT ON appdb.* TO 'app_readonly';
SET DEFAULT ROLE

ユーザーの既定ロールを設定する。

Example
GRANT 'app_readonly' TO 'alice'@'%'; SET DEFAULT ROLE 'app_readonly' TO 'alice'@'%';
FLUSH PRIVILEGES

権限テーブルを再読込する。

Example
FLUSH PRIVILEGES;
CREATE DATABASE

文字コード付きで DB を作成する。

Example
CREATE DATABASE appdb CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
CREATE TABLE InnoDB

InnoDB テーブルを作成する。

Example
CREATE TABLE orders (id BIGINT PRIMARY KEY AUTO_INCREMENT, customer_id BIGINT NOT NULL, created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP) ENGINE=InnoDB;
ALTER TABLE ADD INDEX

オンライン DDL で index を追加する。

Example
ALTER TABLE orders ADD INDEX idx_customer_created (customer_id, created_at), ALGORITHM=INPLACE, LOCK=NONE;
generated column

生成列と index を作る。

Example
ALTER TABLE events ADD COLUMN user_id BIGINT GENERATED ALWAYS AS (json_extract(payload, '$.user_id')) STORED, ADD INDEX idx_user_id (user_id);
EXPLAIN

実行計画を確認する。

Example
EXPLAIN SELECT * FROM orders WHERE customer_id = 42 ORDER BY created_at DESC LIMIT 20;
EXPLAIN ANALYZE

実測付き実行計画を確認する。

Example
EXPLAIN ANALYZE SELECT * FROM orders WHERE customer_id = 42;
EXPLAIN FORMAT=JSON

JSON 形式で詳細な計画を確認する。

Example
EXPLAIN FORMAT=JSON SELECT * FROM orders WHERE status = 'ready'\G
optimizer_trace

オプティマイザ判断を追跡する。

Example
SET optimizer_trace="enabled=on"; SELECT * FROM orders WHERE id=1; SELECT trace FROM information_schema.optimizer_trace\G
SHOW INDEX

index のカーディナリティを確認する。

Example
SHOW INDEX FROM orders FROM appdb;
ANALYZE TABLE

統計情報を更新する。

Example
ANALYZE TABLE appdb.orders;
mysqldump single-transaction

InnoDB を一貫性付きで論理バックアップする。

Example
mysqldump --single-transaction --routines --triggers appdb > appdb.sql
mysqldump restore

SQL ダンプを復元する。

Example
mysql appdb_restore < appdb.sql
mysqldump / mysqlsh dump instance

mysqlpump は MySQL 8.0.34 で非推奨。MySQL 8.4 では mysqldump または MySQL Shell の dump instance / dump schemas を使う。

Example
mysqldump --single-transaction --routines --triggers appdb > appdb.sql mysqlsh -- util dumpInstance /backup/mysql-dump
xtrabackup backup

Percona XtraBackup で物理バックアップする。

Example
xtrabackup --backup --target-dir=/backup/mysql-20260514 --user=backup --password=secret
xtrabackup prepare

物理バックアップをリカバリ可能にする。

Example
xtrabackup --prepare --target-dir=/backup/mysql-20260514
binary log enable

バイナリログの主要設定。

Example
server_id=1 log_bin=mysql-bin binlog_format=ROW gtid_mode=ON enforce_gtid_consistency=ON
CHANGE REPLICATION SOURCE TO

GTID レプリカの接続先を設定する。

Example
CHANGE REPLICATION SOURCE TO SOURCE_HOST='primary.example.com', SOURCE_USER='repl', SOURCE_PASSWORD='secret', SOURCE_AUTO_POSITION=1;
START REPLICA

レプリケーションを開始する。

Example
START REPLICA;
SHOW REPLICA STATUS

レプリカ状態と遅延を確認する。

Example
SHOW REPLICA STATUS\G
binlog_format

statement/row/mixed の設定を確認する。

Example
SHOW VARIABLES LIKE 'binlog_format';
SHOW PROCESSLIST

実行中セッションを確認する。

Example
SHOW FULL PROCESSLIST;
KILL QUERY

問題クエリを停止する。

Example
KILL QUERY 12345;
Performance Schema waits

待機イベントを確認する。

Example
SELECT EVENT_NAME, COUNT_STAR, SUM_TIMER_WAIT FROM performance_schema.events_waits_summary_global_by_event_name ORDER BY SUM_TIMER_WAIT DESC LIMIT 10;
information_schema tables

テーブル容量を確認する。

Example
SELECT table_schema, table_name, ROUND((data_length+index_length)/1024/1024) mb FROM information_schema.tables ORDER BY mb DESC LIMIT 20;
innodb_buffer_pool_size

InnoDB バッファプール設定を確認する。

Example
SHOW VARIABLES LIKE 'innodb_buffer_pool_size';
SHOW ENGINE INNODB STATUS

ロックやデッドロック情報を確認する。

Example
SHOW ENGINE INNODB STATUS\G
MariaDB Galera status

Galera Cluster の状態を確認する。

Example
SHOW STATUS LIKE 'wsrep_cluster%';
MariaDB Aria engine

Aria テーブルを作成する。

Example
CREATE TABLE cache_kv (k VARCHAR(191) PRIMARY KEY, v BLOB) ENGINE=Aria;
MariaDB ColumnStore

ColumnStore テーブル例。

Example
CREATE TABLE metrics (ts DATETIME, host VARCHAR(64), value DOUBLE) ENGINE=Columnstore;
Related