MYSQL40 cmd
MySQL / MariaDB 運用チート集
MySQL / MariaDB の接続、ユーザー権限、DDL、EXPLAIN、バックアップ、GTID レプリケーション、Performance Schema、InnoDB 診断を整理したチート集。
- 更新日
- 2026-05-14
- 参照範囲
- 公式ドキュメント / man page / 主要ベンダーCLI
- 対象実装
- 主要 Linux / BSD / ネットワーク機器 CLI の一般的な実装
- 免責
- OS とバージョン差分は実環境で確認してください。
40 / 40
| Command | Description | Example | Copy |
|---|---|---|---|
mysql -h -u -p | ホストとユーザーを指定して接続する。 | mysql -h db.example.com -u appuser -p appdb | |
mysql --ssl-mode=REQUIRED | TLS 必須で接続する。 | mysql --ssl-mode=REQUIRED -h db.example.com -u appuser -p appdb | |
SHOW DATABASES | データベース一覧を表示する。 | SHOW DATABASES; | |
SHOW TABLES | テーブル一覧を表示する。 | SHOW TABLES FROM appdb; | |
DESCRIBE | テーブル定義を確認する。 | DESCRIBE appdb.orders; | |
\G | 縦表示で長い行を読みやすくする。 | SHOW ENGINE INNODB STATUS\G | |
CREATE USER | ユーザーを作成する。 | CREATE USER 'appuser'@'10.%' IDENTIFIED BY 'change-me'; | |
GRANT | 権限を付与する。 | GRANT SELECT, INSERT, UPDATE ON appdb.* TO 'appuser'@'10.%'; | |
CREATE ROLE | MySQL 8 のロールを作成する。 | CREATE ROLE 'app_readonly'; GRANT SELECT ON appdb.* TO 'app_readonly'; | |
SET DEFAULT ROLE | ユーザーの既定ロールを設定する。 | GRANT 'app_readonly' TO 'alice'@'%'; SET DEFAULT ROLE 'app_readonly' TO 'alice'@'%'; | |
FLUSH PRIVILEGES | 権限テーブルを再読込する。 | FLUSH PRIVILEGES; | |
CREATE DATABASE | 文字コード付きで DB を作成する。 | CREATE DATABASE appdb CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci; | |
CREATE TABLE InnoDB | InnoDB テーブルを作成する。 | 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 を追加する。 | ALTER TABLE orders ADD INDEX idx_customer_created (customer_id, created_at), ALGORITHM=INPLACE, LOCK=NONE; | |
generated column | 生成列と index を作る。 | 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 | 実行計画を確認する。 | EXPLAIN SELECT * FROM orders WHERE customer_id = 42 ORDER BY created_at DESC LIMIT 20; | |
EXPLAIN ANALYZE | 実測付き実行計画を確認する。 | EXPLAIN ANALYZE SELECT * FROM orders WHERE customer_id = 42; | |
EXPLAIN FORMAT=JSON | JSON 形式で詳細な計画を確認する。 | EXPLAIN FORMAT=JSON SELECT * FROM orders WHERE status = 'ready'\G | |
optimizer_trace | オプティマイザ判断を追跡する。 | SET optimizer_trace="enabled=on"; SELECT * FROM orders WHERE id=1; SELECT trace FROM information_schema.optimizer_trace\G | |
SHOW INDEX | index のカーディナリティを確認する。 | SHOW INDEX FROM orders FROM appdb; | |
ANALYZE TABLE | 統計情報を更新する。 | ANALYZE TABLE appdb.orders; | |
mysqldump single-transaction | InnoDB を一貫性付きで論理バックアップする。 | mysqldump --single-transaction --routines --triggers appdb > appdb.sql | |
mysqldump restore | SQL ダンプを復元する。 | mysql appdb_restore < appdb.sql | |
mysqldump / mysqlsh dump instance | mysqlpump は MySQL 8.0.34 で非推奨。MySQL 8.4 では mysqldump または MySQL Shell の dump instance / dump schemas を使う。 | mysqldump --single-transaction --routines --triggers appdb > appdb.sql
mysqlsh -- util dumpInstance /backup/mysql-dump | |
xtrabackup backup | Percona XtraBackup で物理バックアップする。 | xtrabackup --backup --target-dir=/backup/mysql-20260514 --user=backup --password=secret | |
xtrabackup prepare | 物理バックアップをリカバリ可能にする。 | xtrabackup --prepare --target-dir=/backup/mysql-20260514 | |
binary log enable | バイナリログの主要設定。 | server_id=1
log_bin=mysql-bin
binlog_format=ROW
gtid_mode=ON
enforce_gtid_consistency=ON | |
CHANGE REPLICATION SOURCE TO | GTID レプリカの接続先を設定する。 | CHANGE REPLICATION SOURCE TO SOURCE_HOST='primary.example.com', SOURCE_USER='repl', SOURCE_PASSWORD='secret', SOURCE_AUTO_POSITION=1; | |
START REPLICA | レプリケーションを開始する。 | START REPLICA; | |
SHOW REPLICA STATUS | レプリカ状態と遅延を確認する。 | SHOW REPLICA STATUS\G | |
binlog_format | statement/row/mixed の設定を確認する。 | SHOW VARIABLES LIKE 'binlog_format'; | |
SHOW PROCESSLIST | 実行中セッションを確認する。 | SHOW FULL PROCESSLIST; | |
KILL QUERY | 問題クエリを停止する。 | KILL QUERY 12345; | |
Performance Schema waits | 待機イベントを確認する。 | 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 | テーブル容量を確認する。 | 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 バッファプール設定を確認する。 | SHOW VARIABLES LIKE 'innodb_buffer_pool_size'; | |
SHOW ENGINE INNODB STATUS | ロックやデッドロック情報を確認する。 | SHOW ENGINE INNODB STATUS\G | |
MariaDB Galera status | Galera Cluster の状態を確認する。 | SHOW STATUS LIKE 'wsrep_cluster%'; | |
MariaDB Aria engine | Aria テーブルを作成する。 | CREATE TABLE cache_kv (k VARCHAR(191) PRIMARY KEY, v BLOB) ENGINE=Aria; | |
MariaDB ColumnStore | ColumnStore テーブル例。 | CREATE TABLE metrics (ts DATETIME, host VARCHAR(64), value DOUBLE) ENGINE=Columnstore; |