環境
- 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.pyimport 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())