🏉
docker&mysql再入門
作成日: 2024-01-27T08:57:00.000Z
最終更新: 2024-08-07T13:15:00.000Z
概要
dockerでmysqlに接続する
各種手順
コンテナを一覧表示する
ps
はProcess Statusの略
docker ps
コンテナに入る
-it
オプションは、対話的なシェルセッションを開始するためのもので、bash
はコンテナ内で実行するコマンド
docker exec -it <コンテナ名またはコンテナID> bash
MySQLサーバに接続する
- rootで入る場合
- MySQL データベースのインストール時に、デフォルトで
root
というユーザーが作成されます。root
ユーザーは、MySQL の最高権限を持つ管理者アカウントです。
- MySQL データベースのインストール時に、デフォルトで
mysql -u root -p
- 設定したuserとpassで入る場合
- compose.yamlの
MYSQL_USER
とMYSQL_PASSWORD
に設定している情報を参照
- compose.yamlの
mysql -u user_name -p
データベース一覧表示
show databases;
databaseのスイッチ
use database_name;
テーブル表示
show table_name;
テーブルの中身表示
SELECT * FROM table_name;
docker mysql 初期データの設定
<details>
<summary>例</summary>
/host/path
: ホストマシンのディレクトリやファイルのパス/container/path
: コンテナ内のディレクトリやファイルのパス
/host/path
と /container/path
の間にはコロン :
を使用してマッピングします。ホストマシンのパスとコンテナ内のパスは、絶対パスまたは相対パスのいずれかを指定できます。
volumes:
- /host/path:/container/path
</details>
以下を追加する。
./docker/db
- docker-compose.yamlから見た、.sqlなどのDBファイルが置いてあるpath
docker-entrypoint-initdb.d
- Docker コンテナ内の MySQL イメージにおいて、初期化スクリプトやデータベースの初期データを読み込むための特別なディレクトリ
volumes:
- ./docker/db:/docker-entrypoint-initdb.d
初期データ
- DROP TABLE IF EXISTS
- 存在していれば削除
- CREATE TABLE IF NOT EXISTS
- 存在していなければ作成
- type
- unsigned
- 0 と正の数しか格納できなくなる
- unsigned
- PRIMARY KEY
- このテーブル内のユニークキーとなる値
デバッグ
下記コマンドを試すと、sqlの中身の正しさを評価できる。
mysql -u user_name -p database_name < /docker-entrypoint-initdb.d/init.sql