失敗は一時の恥

パッケージソフト開発をしているプログラマが気の赴くままに何かを投稿するブログ.

MySQL 備忘録

最近,DB による getGeneratedKeys の挙動の差 を調べるために, ほぼ初めて (?) MySQL を使用しました.

これはその際に使ったコマンド等の備忘録です.

MySQL の起動とクライアントからの接続

Docker を使って MySQL を起動します.

Docker Hub にある公式イメージ の説明の通りに使わせてもらいます.

MySQL 起動:

$ docker run -d --rm --name mysql -e MYSQL_ROOT_PASSWORD=root -e MYSQL_DATABASE=test_db mysql:8.0.3

ここでは,

  • MYSQL_ROOT_PASSWORD は root
  • 作成するデータベース名は test_db

とします.

上記で起動した MySQL にクライアントから mysql コマンドで接続します:

$ docker run -it --link mysql:mysql --rm mysql:8.0.3 sh -c 'exec mysql -h"$MYSQL_PORT_3306_TCP_ADDR" -P"$MYSQL_PORT_3306_TCP_PORT" -uroot -p"$MYSQL_ENV_MYSQL_ROOT_PASSWORD"'

MySQL 起動コマンドを実行した直後だと,まだ接続できる状態になっておらずエラーとなることがあります.

クライアント接続後の操作

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

$ SHOW DATABASES;

テーブルを作成する.列 id は自動採番にする:

$ CREATE TABLE test_db.test_table (id BIGINT AUTO_INCREMENT , value TEXT, INDEX(id));

存在するテーブルの一覧を取得する:

$ SHOW TABLES FROM test_db;

テーブルを削除する:

$ DROP TABLE test_db.test_table;

データを挿入する

$ INSERT INTO test_db.test_table (value) VALUES ('TEST_VALUE1');

データを取得する

$ SELECT * FROM test_db.test_table;