システム情報
| コマンド
 | 
説明
 | 
SHOW STATUS | 
システム変数の表示
 | 
SET | 
システム変数の変更
 | 
起動
| コマンド
 | 
説明
 | 
mysql_secure_installation | 
初期化
 | 
mysql -u user -p sampledb | 
ログイン
 | 
status | 
セッション情報を表示
 | 
SHOW TABLE STATUS¥G | 
auto_increment値の確認
 | 
ALTER TABLE hoge AUTO_INCREMENT=3; | 
auto_increment値のセット
 | 
auto_increment値の初期化
mysql > CREATE TABLE tmp LIKE hoge;    ← カラム定義だけ同じテーブルを作成
mysql > CREATE TABLE tmp AS SELECT * FROM hoge WHERE 1=2;    ← この書き方もできる
mysql > SET @a = 0;
mysql > INSERT INTO tmp SELECT @a := @a + 1 AS id, name FROM hoge
* 主キーが削除できない時はその列にインデックスを追加すると削除できるようになる
ユーザ管理
| コマンド
 | 
説明
 | 
SELECT user, host FROM mysql.user; | 
ユーザリストを表示
 | 
GRANT ALL ON sampledb.* TO user@localhost IDENTIFIED BY 'passwd';  | 
ユーザの追加・権限付与
 | 
GRANT INSERT, DELETE ON sampledb.* TO user@localhost; | 
権限付与
 | 
REVOKE INSERT, DELETE ON sampledb.* FROM user@localhost; | 
権限の取り消し
 | 
SHOW GRANTS FOR user@localhost¥G | 
権限を表示
 | 
FLUSH PRIVILEGES; | 
権限の更新
 | 
CREATE/DROP USER user@localhost; | 
ユーザを作成/削除
 | 
RENAME USER old_name TO new_name; | 
ユーザ名の変更
 | 
DROP USER user@localhost; | 
ユーザの削除
 | 
SET PASSWORD FOR user@localhost = password('new_passwd'); | 
パスワード変更(rootで操作)
 | 
SET PASSWORD = password('new_passwd'); | 
パスワード変更(ユーザで操作)
 | 
データベース
| データベースを作成 | リスト表示(S) | 属性変更 | 削除
 | 
CREATE | SHOW | ALTER | DROP DATABAE(S)
 | 
| データベースを選択
 | 
USE
 | 
テーブル操作
| テーブルの作成
 | 
CREATE TABLE user (u_id int NOT NULL PRIMARY KEY AUTO_INCREMENT, name char(10) DEFAULT 'hoge' NOT NULL, birth date NOT NULL);
 | 
| テーブルを作成 | リスト表示(S) | 変更 | 削除
 | 
CREATE | SHOW | ALTER | DROP TABLE(S)
 | 
| 列名の変更
 | 
ALTER TABLE hoge CHANGE old_name new_name int NOT NULL;
 | 
| テーブル名の変更
 | 
ALTER TALBE old RENAME new
 | 
| 列属性の変更
 | 
ALTER TABLE hoge MODIFY name date NOT NULL;
 | 
| 外部キーの追加・削除
 | 
ALTER TABLE foo ADD CONSTRAINT fkey FOREIGN KEY (a) REFERENCES bar (b);
 | 
| データを挿入|更新|削除
 | 
INSERT | UPDATE | DELETE
 | 
| データを取得
 | 
SELECT
 | 
| SELECTした結果を挿入
 | 
INSERT INTO SELECT
 | 
| テーブルをロック | ロック解除
 | 
LOCK | UNLOCK TABLES
 | 
| 属性変更|削除
 | 
ALTER|DROP VIEW
 | 
| 作成したビューを表示
 | 
SHOW CREATE VIEW
 | 
| リスト表示 | 削除
 | 
SHOW | DROP INDEX
 | 
| ストアドファンクションを作成
 | 
CREATE FUNCTION
 | 
| ストアドファンクションを表示
 | 
SHOW CREATE FUNCTION
 | 
| ストアドファンクションの状態を表示
 | 
SHOW FUNCTION STATUS
 | 
| リスト表示(S)|削除
 | 
SHOW|DROP TRIGGER(S)
 | 
| 停止
 | 
STOP SLAVE
 | 
| トランザクション機能を開始
 | 
START TRANSACTION
 | 
*外部キーを追加するときは結びつけるカラムが相互に同じ型である事、挿入データが既にある場合は値が全て一致している必要がある
ダンプとリストア
ダンプとリストアには4つの方法がある。
- データファイル群のコピー - 古いディレクトリを tar で圧縮してから新しいディレクトリで展開
 
- mysqldump による論理バックアップとリストア - テーブル生成とデータ挿入の SQL文の塊として
 
- XtraBackup による物理バックアップとリストア - Percona社が提供しているオンライン物理バックアップツール。無料ながら非常に高機能
 
- LVM によるスナップショットとリストア - Linux の LVM機能を利用してバックアップを取る。fdisk や pvcreate などを利用
 
mysqldump の例:
$ mysqldump -u root sampledb > dump.sql    ← ダンプ
$ mysql -u root -p -D sampledb < dump.sql    ← リストア
Mysqlクライアント
| 説明
 | 
コマンド
 | 
| データベースの作成 | 
mysqladmin -u root -p create sampledb
 | 
| ステータスの表示 | 
mysqladmin -u root -p status
 | 
| 稼働状況の表示 | 
mysqladmin -u root -p status
 | 
| スレッドリストの表示 | 
mysqladmin -u root -p processlist
 | 
| スレッド番号3を kill | 
mysqladmin -u root -p kill 3
 | 
| パスワードを変更 | 
mysqladmin -u root -p password 'new-password'
 | 
| スレーブ機能を開始 | 
mysqladmin -u root -p start-slave
 |