サンプル集  >  other  >  Docker MySQL
Docker MySQL
2025/02/11

Docker上でMySQLの環境を作ってみます。

◆環境
OS Windows 10 Home 22H2 64bit
Docker 27.4.0 build bde2b89
  1. MySQLの環境構築
  2. 外部ツールから接続
  3. コンテナの停止

MySQLの環境構築

docker-composeの設定ファイルを作成します。

docker-compose.yml
 1: 
 2: 
 3: 
 4: 
 5: 
 6: 
 7: 
 8: 
 9: 
10: 
11: 
12: 
services:
    mysql:
        image: mysql:8.0.41
        container_name: mysql-container-8.0.41
        ports:
            - "3306:3306"
        environment:
            MYSQL_ROOT_PASSWORD: root
            MYSQL_DATABASE: MyDB
            TZ: "Asia/Tokyo"
        volumes:
            - ./my.cnf:/etc/mysql/conf.d/my.cnf

MySQLの設定ファイルを作成します。

my.cnf
1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
9: 
[mysqld]
character_set_server = utf8mb4
collation_server = utf8mb4_ja_0900_as_cs

[mysql]
default-character-set = utf8mb4

[client]
default-character-set = utf8mb4

docker-composeでコンテナを起動します。

docker-compose up -d
unable to get image 'mysql:8.0.41': error during connect: Get "http:/
/%2F%2F.%2Fpipe%2FdockerDesktopLinuxEngine/v1.47/images/mysql:8.0.4
1/json": open //./pipe/dockerDesktopLinuxEngine: The system cannot 
find the file specified.

Docker Desktopが起動していなかったので起動して再度コマンドを実行しました。

docker-compose up -d
[+] Running 1/12
[+] Running 1/12⠀⠀⠀⠀⠀] Pulling                                  4.0s
[+] Running 2/12⠀⠀⠀⠀⠀] Pulling                                  4.1s
 - mysql [⣿⠀⠀⠀⠀⠀⠀⠀⣿⠀⠀] Pulling                                4.2s
[+] Running 2/121d Download complete                             0.6s
 - mysql [⣿⠀⣿⠀⠀⠀⠀⠀⣿⠀⠀] Pulling                               4.3s
[+] Running 4/121d Download complete                             0.6s
 - mysql [⣿⠀⣿⠀⠀⣿⠀⠀⣿⠀⠀] Pulling                               4.4s
    a10aecbb3a1d Download complete                             0.6s
   - 3d3196bdb946 Downloading    [===================================
===============>] ...          1.0s
:

:
    2331a4e90fe2 Download complete                             3.7s
[+] Running 1/0
[+] Running 1/2_default               Created                    0.0s
[+] Running 1/2_default               Created                    0.0s
[+] Running 1/2_default               Created                    0.0s
[+] Running 1/2_default               Created                    0.0s
[+] Running 1/2_default               Created                    0.0s
[+] Running 1/2_default               Created                    0.0s
[+] Running 2/2_default               Created                    0.0s
  Network src_default               Created                    0.0s
 - Container mysql-container-8.0.41  Starting                    0.7s
  Container mysql-container-8.0.41  Started                    0.7s

イメージ一覧を確認します。

docker image ls
REPOSITORY   TAG       IMAGE ID       CREATED        SIZE
mysql        8.0.41    a08db11d440f   2 weeks ago    1.04GB
ubuntu       20.04     8e5c4f0285ec   4 months ago   109MB

実行中のコンテナを確認します。

docker ps
CONTAINER ID   IMAGE          COMMAND                   CREATED      
   STATUS         PORTS                               NAMES
5a8a06322e30   mysql:8.0.41   "docker-entrypoint.s…"   8 minutes ago
   Up 8 minutes   0.0.0.0:3306->3306/tcp, 33060/tcp   mysql-contain
er-8.0.41

コンテナにログインします。

docker exec -it mysql-container-8.0.41 bash
bash-5.1#

MySQLのバージョンを確認します。

bash-5.1# mysql --version
mysql: [Warning] World-writable config file '/etc/mysql/conf.d/my.cnf
' is ignored.
mysql  Ver 8.0.41 for Linux on x86_64 (MySQL Community Server - GPL)

警告が出ました。my.cnfが無視されたようです。

my.cnfを右クリックしプロパティを開き読み取り専用に変更します。


必要あるかどうか分かりませんがdocker-compose buildとupを実行しました。

docker-compose build
docker-compose up -d
[+] Running 1/0
  Container mysql-container-8.0.41  Running                    0.0s

再度コンテナにログインします。

docker exec -it mysql-container-8.0.41 bash
bash-5.1# mysql --version
mysql  Ver 8.0.41 for Linux on x86_64 (MySQL Community Server - GPL)

MySQLにログインします。

bash-5.1# mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.41 MySQL Community Server - GPL

Copyright (c) 2000, 2025, 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 s
tatement.

データベースの一覧を確認します。

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| MyDB               |
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.00 sec)

データベースをMyDBへ切り替えます。

mysql> use MyDB
Database changed
mysql> select database();
+------------+
| database() |
+------------+
| MyDB       |
+------------+
1 row in set (0.00 sec)

文字コードを確認します。

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.0/charsets/ |
+--------------------------+--------------------------------+
8 rows in set (0.01 sec)

照合順序を確認します。

mysql> show variables like '%collation%';
+-------------------------------+--------------------+
| Variable_name                 | Value              |
+-------------------------------+--------------------+
| collation_connection          | utf8mb4_0900_ai_ci |
| collation_database            | utf8mb4_0900_ai_ci |
| collation_server              | utf8mb4_0900_ai_ci |
| default_collation_for_utf8mb4 | utf8mb4_0900_ai_ci |
+-------------------------------+--------------------+
4 rows in set (0.00 sec)

外部ツールから接続

A5: SQL Mk-2というアプリをダウンロードし作業しているPCにインストールします。

起動すし「データベースの追加と削除」画面で「追加」を押下します。


「MySQL/MariaDB (直接接続)」を押下します。


データベースの情報を入力し「テスト接続」を押下します。


接続に成功しました。「OK」を押下します。


「OK」を押下します。


左のデータベースを開いていくとMyDBがあることを確認できました。


正常に動作しているようです。

コンテナの停止

コンテナを停止します。

docker stop mysql-container-8.0.41
mysql-container-8.0.41
docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAME
S
>

コンテナは停止したようです。

▲ PageTop  ■ Home


Copyright (C) 2025 ymlib.com