• Skip to main content
  • Skip to primary sidebar
  • ホーム
  • お問い合わせ

ハイパー仕事し隊

思い立った吉日!イロイロ試してオンリーワンの起業家を目指してます!

現在の場所:ホーム / ウェブアプリ関連 / MySQL と phpMyAdmin を Docker Compose で作って、Python から接続する

MySQL と phpMyAdmin を Docker Compose で作って、Python から接続する

2021年1月19日

Docker Logo

PC に PostgreSQL や MySQL など複数の DB を入れたり、バージョン違いを入れたいと思っても結構取り扱いが大変です。
特に Windows の場合。。。

ただ、Docker を使うと環境に依存せずに、簡単に構築できます!!
感謝!!

すぐ試したい方は、Docker Compose ファイル (docker-compose.yml) を作成して、下の YAML をコピペして、docker-compose up するだけ です。

ぜひお試しください。

Docker を使うにあたり、まず初めに

  • latest は絶対に使わない
    • 動作を確認しているバージョンじゃないものが起動する可能性があるので、面倒でもバージョンは指定しましょ
    • 実運用ではバージョンを指定するので、日頃からクセをつけておきましょく
  • 公式サイトは絶対みる
    • ネットに転がっている情報が古かったり、古い情報をそのまま使い続けている人もいるので。
    • docker ps なのか docker container ls のどちらを使っていますか?(→ 結果は一緒ですが、docker container ls の方が新しいコマンドですね)

Docker Compose ファイル

では、さっそく書いていきましょ。

version: "3.8"

services:
  # Database
  db:
    image: mysql:5.7
    restart: always
    ports:
      - "3306:3306"
    environment:
      MYSQL_ROOT_PASSWORD: password
      MYSQL_DATABASE: test-db
      MYSQL_USER: user1
      MYSQL_PASSWORD: user1-passwd

  # phpmyadmin
  phpmyadmin:
    depends_on:
      - db
    image: phpmyadmin/phpmyadmin
    restart: always
    ports:
      - "8080:80"
    environment:
      PMA_HOST: db
      MYSQL_ROOT_PASSWORD: password
  1. Python は port=3306 で MySQL にアクセスするので、コンテナ側のポートとローカルポートをバインド
  • docker-compose up -dで起動
  • docker-compose stopで一時停止
  • docker-compose downでコンテナ削除

起動後は、localhost:8080 で phpMyAdmin にアクセスできます。

これだけで、バージョン固定の MySQL & phpMyAdmin が立ち上がるなんて。。すごいです。。

Python でアクセスできることを確認

データベースの port=3306 もアクセスできるようにしているので、Python から確認してみましょ。

まずは、mysql 接続に必要なモジュールを取得

pip install mysql.connector

Python ファイルでインポート

import mysql.connector

コネクションを取得

db_conn = mysql.connector.connect(
    host="localhost",
    user="user1",
    passwd="user1-passwd",
    database="test-db"
)

問題なく取得できれば、下記で true が返ってきます。

print(db_conn.is_connected())

データベース情報を取得

cur.execute("SHOW DATABASES")
for db in cur:
    print(db)

忘れずに close しましょ。

cur.close()
db_conn.close()

まとめ

いろんなデータベースの、いろんなバージョンを扱うことができましたね。

ぜひお試しください。

よく使う記事はこちらにまとめているので、参考がてらぜひ見てください。

これであなたもドヤれる!!Docker で頻繁に使う 10 のコマンド

docker-compose down で

カテゴリー: ウェブアプリ関連
タグ: docker, mysql, python

最初のサイドバー

簡単な自己紹介

ごく普通の 30 代サラリーマンです。世界を旅しながらの生活が目標!!
IT 全般に興味あり: Python (Flask, Django) / PHP (Laravel, Wordpress) / Golang / AWS / Network Security.
Read More…

サイト内検索

最近の投稿

  • 【VS Code プラグイン】Postman より便利!? Rest Client をオススメする理由
  • MySQL と phpMyAdmin を Docker Compose で作って、Python から接続する
  • Windows10 上の Ubuntu から “curl localhost” を実行すると “Connection refused” になる原因
  • リダイレクトの仕組み知ってる?Flask で調べるてみるのだ。
  • Apple 独自の 検索エンジンで何が変わるのか

アーカイブ

  • 2021年3月
  • 2021年1月
  • 2020年10月
  • 2019年3月
  • 2018年11月
  • 2018年10月
  • 2018年9月
  • 2018年8月
  • 2018年7月
  • 2018年5月
  • 2018年4月

タグ

amazon cloudfront amazon s3 aws coursera css django docker flask fullstack gcp github hawaii life in USA linux mongodb mysql postgresql pwa python sqlite vagrant

Contact
Privacy Policy and Term of Use
Copyright © 2025 · All rights reserved.