/Linuxコマンド

開発ツール

データベースのクライアント

sqlite3・psql・mysql・redis-cli で、データベースにつないで問い合わせる。

どれも Ubuntu には最初から入っていないので、見出しの下のコマンドで入れてから使います。Docker で動かしているデータベースなら、docker exec -it <コンテナ> psql … のようにコンテナの中のクライアントを使う手もあります。

sqlite3ファイル1つのデータベース

Ubuntu には最初から入っていません。 で入れられます。

ファイル1つで動く手軽なデータベース SQLite を操作します。

bash
$ sqlite3 app.db
sqlite> .tables                 -- テーブルの一覧
sqlite> .schema users           -- テーブルの定義
sqlite> .headers on
sqlite> .mode column
sqlite> SELECT * FROM users LIMIT 10;
sqlite> .quit
$ sqlite3 app.db "SELECT count(*) FROM users;"
$ sqlite3 -csv -header app.db "SELECT * FROM users" > users.csv
$ sqlite3 app.db .dump > backup.sql

psqlPostgreSQL

Ubuntu には最初から入っていません。 で入れられます。

PostgreSQL に接続して SQL を実行します。

bash
$ psql -h localhost -U postgres -d mydb
$ psql "postgres://user:pass@host:5432/mydb"
$ psql -c "SELECT now();" mydb
$ pg_dump -Fc mydb > mydb.dump            # バックアップ
$ pg_restore -d mydb mydb.dump
psql のコマンド意味
\lデータベースの一覧
\c mydb接続先を変える
\dtテーブルの一覧
\d usersテーブルの定義
\x縦長表示の切り替え
\q終了

mysqlMySQL / MariaDB

Ubuntu には最初から入っていません。 で入れられます。

MySQL / MariaDB に接続して SQL を実行します。

bash
$ mysql -h 127.0.0.1 -u root -p mydb
$ mysql -u root -p -e "SHOW DATABASES;"
$ mysqldump -u root -p mydb > mydb.sql
$ mysql -u root -p mydb < mydb.sql

redis-cliRedis

Ubuntu には最初から入っていません。 で入れられます。

Redis に接続して、キーの読み書きや状態の確認をします。

bash
$ redis-cli ping
$ redis-cli -h 127.0.0.1 -p 6379
127.0.0.1:6379> SET key value
127.0.0.1:6379> GET key
127.0.0.1:6379> KEYS 'user:*'      # 本番では SCAN を使う
$ redis-cli --scan --pattern 'session:*' | head
$ redis-cli monitor               # 送られてくるコマンドを見る