CentOSに標準インストールされているPython2.7にmysql-connector-pythonパッケージをインストールして、MySQL/MariaDBに接続します。
Python3系や自インストールしたものでも使えるし、CentOS以外でもやり方は同じです。
DBに接続を行うコネクターのインストール環境です。
OS | CentOS 7.4.1708 |
---|---|
python | Ver2.7。OS標準インストール。 |
DB | MySQL, MariaDB |
pipコマンドを使ってインストール
pythonのパッケージ管理であるpipコマンドを使用してインストールします。
pip install mysql-connector
失敗しました。こんなエラーです。
running install
Not Installing MySQL C Extension
running build
# Python architecture: 64-bit
# Python ARCH_64BIT: True
Unable to find Protobuf include directory.
' ----------------------------------------
Command "/usr/bin/python2 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-eUfgeL/mysql-connector/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-HBetzs-record/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-build-eUfgeL/mysql-connector/
pipコマンドのインストールでエラコード=1が返されています。
そこでMySQLのサイトを見たところ、手動インストールができるようなので、インストール方法を変えました。
手動インストール
yum install mysql-connector-python
インストール確認
pipコマンドで確認します。
pip list
backports.ssl-match-hostname (3.4.0.2)
certifi (2017.4.17)
chardet (3.0.4)
configobj (4.7.2)
decorator (3.4.0)
idna (2.5)
iniparse (0.4)
kitchen (1.1.1)
mysql-connector-python (1.1.6)
...
今度はうまくいきました。
ぼく
でも、なんでpipではダメだったんだろう?
原因を突き止めたいところですが、目的がちがうのでスルーします。
動作確認
python -c 'import mysql.connector'
このコマンドは、mysql-connector-pythonパッケージをインポートしています。ふだんはソースコードに書くものです。
インポートできれば(エラーが発生しなければ)、パッケージが正常にインストールされています。
正常なら標準出力に何も表示されません。