
CentOSに標準インストールされているPython2.7にmysql-connector-pythonパッケージをインストールして、MySQL/MarriaDBに接続します。
Python3系でも使えます。
CentOS(7.4.1708)に標準インストールされているpython2.7に、データベース(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
インストール方法は、MySQLのWebサイトのドキュメントを参考にしました。
インストール確認
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)
...
今度はうまく行きました!

原因を突き止めたいところですが、目的が違うのでスルーします。
動作確認
python -c 'import mysql.connector'
実行して標準出力に何も表示されなければ正常に動作しています。
このコマンドは、mysql-connector-pythonパッケージをインポートしています。ふだんはソースコードに書くものです。
インポートできれば(エラーが発生しなければ)、パッケージが正常にインストールされています。