14
16

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

PythonからDockerコンテナ内のMySQLに接続するまで

Posted at

環境

  • Python: 3.6
  • pipenv: 2018.7.1
  • pip: 18.0.0
  • mysql-connector-python: 8.0.16
  • Docker: 2.0.0.3
  • Image: mysql 8.0.16, 8.0, 8, latest

執筆したきっかけ

研究で使用する機会があり,備忘録程度にまとめました

MySQLのコンテナを立ち上げるまで

  • Dockerコマンドを確認

    $ docker -v
    
  • DockerHubからMySQLイメージをダウンロード

    $ docker pull mysql
    
  • コンテナ起動
    参考: dockerでmysqlを使う

    $ docker run --name mysql -e MYSQL_ROOT_PASSWORD=mysql -d -p 3306:3306 mysql
    

    -nameの変数は任意.MYSQL_ROOT_PASSWORDはrootのパスワードなので,それなりのものにしてください.-pは,動かすポートを指定しています.例えば,8080でデタッチしたいなら,8080:3306としてください.

  • コンテナの起動確認

    $ docker ps
    CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                               NAMES
    bab20717195b        mysql               "docker-entrypoint.s…"   About an hour ago   Up About an hour    0.0.0.0:3306->3306/tcp, 33060/tcp   mysql
    
  • コンテナに接続

    $ docker exec -it 'CONTAINER ID' bash
    
  • MySQLに入る

    $ mysql -u root -p
    
  • データベースを作成
    参考: MySQLチートシート

    mysql> CREATE DATABASE python_test;
    mysql> SHOW DATABASES;
    

PythonからDockerコンテナ内のMySQLに接続するまで

  • 仮想環境を構築

    $ pipenv --python 3.6
    $ pipenv install
    $ pipenv shell
    
  • ライブラリをインストール

    $ pipenv install mysql-connector-python
    $ pip list
    
  • 接続確認
    参考: Python3でMySQL Connectorのインストール・接続方法【快適に使う方法を紹介】

    mysql_test.py
    import mysql.connector
    
    # コネクションの作成
    conn = mysql.connector.connect(
        host='localhost',
        port='3306',
        user='root',
        password='mysql',
        database='python_test'
    )
    
    # コネクションが切れた時に再接続してくれるよう設定
    conn.ping(reconnect=True)
    
    # 接続できているかどうか確認
    print(conn.is_connected())
    
14
16
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
14
16

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?