" />
本ページはプロモーションが含まれています。

スポンサーリンク

Docker

dockerで起動したMySQLにmysqlコマンドで接続する

この記事では、dockerで起動したMySQLに、mysqlコマンドで接続する方法を説明します。

次のようなdocker-compose.ymlを記述し、
$ docker-compose up -d
によりコンテナを起動します。

version: "3"
services:
  db:
    container_name: db
    image: mysql:8
    restart: always
    environment:
      MYSQL_DATABASE: ${MYSQL_DATABASE}
      MYSQL_USER: ${MYSQL_USER}
      MYSQL_PASSWORD: ${MYSQL_PASSWORD}
      MYSQL_ROOT_PASSWORD: ${MYSQL_PASSWORD}
    ports:
      - 3306:3306
    networks:
      okozukai-network:
networks:
  okozukai-network:

networks:の名前は任意でOK。

  MYSQL_DATABASE="okozukai"
  MYSQL_USER="okozukaiadmin"
  MYSQL_PASSWORD="xxxx"

データベースやユーザー、パスワードはdocker-compose.ymlに直接書いてもOKですし、.envに定義してもOKです。

docker desktopのCLIボタンから、コンテナにターミナル接続します。

コマンドの場合は、
$ docker exec -it コンテナ名 /bin/sh
でもOKです。

// MySQLコンテナに接続
noricgeographic@MacBook-Air ~ % docker exec -it 9b0fe464c6d3fef03d97f50e4b6b3c6f6d95621f6aa105a34d8da7a3b76cdc35 /bin/sh

// MySQLに接続
# mysql -u okozukaiadmin -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 22
Server version: 8.0.28 MySQL Community Server - GPL

Copyright (c) 2000, 2022, 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> use okozukai;
Database changed

// テーブル一覧を表示 など
mysql> show tables;
Empty set (0.02 sec)

4行目...MySQLに接続するときは -p オプションをつけないと、エラーになります。
20行目...docker-compose.ymlで指定した「MYSQL_DATABASE」を選択します。

そうすると、後はいつものSELECT文やINSERT文などを発行できます。
ただし、コンテナ起動直後はテーブルは何もありません。(20行目)

スポンサーリンク

-Docker