Docker ComposeとSequel AceでシンプルなMySQL実行環境を用意する
はじめに
気軽にMySQLをいじれる環境がほしかったので簡単に実行環境を作ってみた内容のメモです。
ファイル構成は以下のようになってます。
simple-mysql-dev
┣ docker-compose.yml
┗ data
docker-compose.ymlを作成する
version: '3'
services:
mysqldb:
image: mysql:8.3
container_name: mysql_container
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: dev
MYSQL_USER: dev
MYSQL_PASSWORD: dev
TZ: 'Asia/Tokyo'
LANG: ja_JP.UTF-8
volumes:
- ./data:/var/lib/mysql
ports:
- '4306:3306'
expose:
- 4306
platform: linux/arm64
日本語対応について
DockerのMySQLがそのままだと日本語のデータを登録することができなかったので、environment にLANG: ja_JP.UTF-8
を設定しています。これで文字コードがutf8mb4
になり日本が登録できるようになりました。
コンテナを起動する
docker compose up
起動状況を確認
simple-mysql-dev $ docker compose ps
NAME COMMAND SERVICE STATUS PORTS
mysql_container "docker-entrypoint.s…" mysqldb running 0.0.0.0:4306->3306/tcp
CLIでコンテナのMySQLにアクセスして確認する
docker exec -it mysql_container bash
でコンテナにアクセス
simple-mysql-dev $ docker exec -it mysql_container bash
bash-4.4#
mysql -h 127.0.0.1 -P 3306 -u root -p
でMySQLに接続
simple-mysql-dev $ docker exec -it mysql_container bash
bash-4.4# mysql -h 127.0.0.1 -P 3306 -u root -p
Enter password:
パスワードを聞かれるので docker-compose の environment で設定したパスワードを入力します。
認証が通ればMySqlに接続されます。
simple-mysql-dev $ docker exec -it mysql_container bash
bash-4.4# mysql -h 127.0.0.1 -P 3306 -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.3.0 MySQL Community Server - GPL
Copyright (c) 2000, 2024, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
言語設定を確認する
mysql> show variables like '%char%';
+--------------------------+--------------------------------+
| Variable_name | Value |
+--------------------------+--------------------------------+
| character_set_client | utf8mb4 |
| character_set_connection | utf8mb4 |
| character_set_database | utf8mb4 |
| character_set_filesystem | binary |
| character_set_results | utf8mb4 |
| character_set_server | utf8mb4 |
| character_set_system | utf8mb3 |
| character_sets_dir | /usr/share/mysql-8.3/charsets/ |
+--------------------------+--------------------------------+
8 rows in set (0.03 sec)
認証方式の設定を確認する
mysql> select user, host, plugin from mysql.user;
+------------------+-----------+-----------------------+
| user | host | plugin |
+------------------+-----------+-----------------------+
| dev | % | caching_sha2_password |
| root | % | caching_sha2_password |
| mysql.infoschema | localhost | caching_sha2_password |
| mysql.session | localhost | caching_sha2_password |
| mysql.sys | localhost | caching_sha2_password |
| root | localhost | caching_sha2_password |
+------------------+-----------+-----------------------+
6 rows in set (0.01 sec)
MySQL5.7までの認証プラグインはmysql_native_password
がデフォルトだったようですが、MySQL8からcacing_sha2_password
がデフォルトで使われるようになったようです。
登録されているデータベースを確認する
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| dev |
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
5 rows in set (0.03 sec)
クライアントツールを導入してDBを操作してみる
「Sequel Ace」が良さそうだったのでこちらを使います。
起動してデータベースに繋ぐ設定を入力し、設定を「Add to Favolites」で保存しておくと後々また接続する際に便利です。
「Connect」ボタンを押すとデータベースサーバーに接続されます。
左上のデータベース選択のプルダウンで対象のデータベースを選択します。
これでデータベースの接続完了。
テーブルを作成してみる
右上の「クエリ」を押すとSQLの入力パネルに切り替わります。
実行したいSQLを入力して、右下の「現在の実行」を押すと実行されます。
左側に作成されたテーブルが表示されます。
左上の「内容」のパネルでテーブル内容を確認できます。
データを登録してみる
同じようにクエリパネルでSQLを使って登録します。
左上の「内容」のパネルで登録内容を確認できます。
下のバーにある更新ボタンを押すとテーブルの内容が最新状態に更新されます。
Discussion