write ahead log

ロールフォワード用

MySQLコマンド自分用チートシート

インストール

ubuntuの場合(WSL可)

$ sudo apt install mysql-client

接続

WSLのUbuntu上からローカルへ接続する場合は[127.0.0.1]と指定が必要だった.
(localhostではダメだった)

長いので開発時はalias組んだ方がいい.

普通につなぐ
$ mysql -h [ホスト名] -u [ユーザ名] -p[パスワード(pとの間にスペース入れない)] [スキーマ名]
縦表示でつなぐ

縦表示(psqlでの拡張表示)で常に表示したい場合は-Eを付ける.

$ mysql -h [ホスト名] -u [ユーザ名] -p[パスワード(pとの間にスペース入れない)] [スキーマ名] -E
ページャ指定でつなぐ

とりあえずless指定してみる.

$ mysql -h [ホスト名] -u [ユーザ名] -p[パスワード(pとの間にスペース入れない)] [スキーマ名] -E --pager="less" 
エンコーディング指定でつなぐ

utf8にすると

$ mysql -h [ホスト名] -u [ユーザ名] -p[パスワード(pとの間にスペース入れない)] [スキーマ名] -E --pager="less"  --default-character-set=utf8

クエリ

縦表示(拡張表示)

クエリの末尾に\Gを付けると縦表示になる.
(コマンド起動時に-Eを付けている場合はデフォルトで縦表示になる)

> SELECT * FROM users\G
編集

エディタでクエリを編集できる.

> edit

エディタ終了後に;でクエリ実行.

データベースの一覧
> show databases;
テーブルの一覧
> show tables;

終了

> quit

コマンドの実行履歴

デフォルトでは以下にある.

~/.mysql_history

バックアップ

mysqldumpコマンドを使う.

$ mysqldump -u [ユーザ名] -p[パスワード(pとの間にスペース入れない)] -h [ホスト名] -t [スキーマ名] > [出力ファイル名]

リストア

mysqlコマンド経由で標準入力からSQLを投入するだけ.

必要であれば事前にCREATE DATABASEを実行.

接続方法は前掲通り.

$ mysql -h [ホスト名] -u [ユーザ名] -p[パスワード(pとの間にスペース入れない)] [スキーマ名] < [リストアファイル名]