【Docker】Alpine Linux版Pythonにmysqlclientをインストールするとき
投稿日2023-01-28
更新日2024-05-17
目次(タップして移動)
mysqlclientとは
PythonでMySQLを使用するためには、MySQLのクライアントライブラリであるmysqlclientをインストールする必要があります。
mysqlclientをインストールするには、通常pipを使用して、次のコマンドを実行します。
pip install mysql-client
そのままインストールしようとするとエラーが出る
が、エラーが大量に出ます。
理由はいくつかの依存関係があるライブラリが足りてないからです。それらをmysqlclientより先にインストールする事でエラーを回避して、無事インストールすることができます。
インストール方法
必要なのは
gcc python3-dev libc-dev mariadb-dev
の4つ。
以下にDockerfileの簡単な記述例を紹介します。
#Dockerfile FROM python:3.11.1-alpine3.17 #バージョンは一例です。適宜変更で。 ~~(略)~~ RUN apk add gcc python3-dev libc-dev mariadb-dev && \ pip3 install --upgrade pip && \ pip3 install -r requirements.txt #requirements.txtにmysqlclientが含まれている前提です。 ~~(略)~~
pipのアップグレードは必須ではありませんが、いちいちwarningが出るので。結論として、
apk add gcc python3-dev libc-dev mariadb-dev
をpipより先に実行する事でエラーなくインストールできました。
接続テスト
これで、PythonからMySQLサーバに接続できるようになります。
最後に、MySQLサーバに接続するために必要な設定情報(ホスト名、ユーザ名、パスワード、データベース名など)をPythonコード内で指定する必要があります。
例えば、次のように設定情報を指定してMySQLサーバに接続することができます。
import MySQLdb # MySQLサーバへの接続情報 host = 'localhost' username = 'root' password = 'password' database = 'test' # MySQLサーバに接続 conn = MySQLdb.connect( host=host, user=username, passwd=password, db=database ) # カーソルを取得 cursor = conn.cursor() # SQLを実行 cursor.execute('SELECT * FROM table') # 結果を取得 result = cursor.fetchall() # 接続を閉じる conn.close()
上記のように設定を行うことで、Alpine Linux上でMySQLを使用することができるようになります。
サイト管理者
がずしげ
- アプリ開発
- 株式投資、等
関連記事
最新記事
スポンサーリンク
このサイトをシェアする