[python] Mac Catalina に mariadb + mysqlclient の環境を作成する

Mac : 10.15.1
Python 2.7.6
MariaDB : 10.4.10

mysqlclient を入れるのにいつくか関門があった。

まずは解決方法

以下発生したエラーとそれぞれの対応

ssl のインストール

pip install mysqlclient
を普通に行うと

はい、openssl を入れます。

インストール時に

と表示されるので、その通りに従い実行する

そして、

エラー

mariadb-connector-c を入れる

エラーを調べると以下のようなのが見つかる。

https://stackoverflow.com/questions/44239393/installing-mysqlclient-for-mariadb-on-mac-os-for-python3/44268445#44268445

手順を真似して実行する

だめじゃん。
以下のエラー

mysql_config いじる

mysql_config 中をいじると良いとある情報が多々見つかる

https://stackoverflow.com/questions/50864438/mac-pip-install-mysql-python-unsuccessful

https://stackoverflow.com/questions/12218229/my-config-h-file-not-found-when-intall-mysql-python-on-osx-10-8

だけど、/usr/local/bin/mysql_config 正しく言えば、/usr/local/opt/mariadb-connector-c/bin/mariadb_config はバイナリ。

mariadb-connector-c じゃなくて、mariadb を利用していた時は、 mariadb_config はシェルファイルでいじれるけど。 なので、mariadb 時代の mariadb_config コピーしたりしたけど無駄でした。

include を追加して対応

結局 my_config.h の場所を探して

をしたら成功しました。

仮想実行環境などで2回目以降のインストール

仮想実行環境(virtualenvや、pipenv)で、2回目以降は以下の手順でインストールできます。
mariadb-connector-c を、install するか unlink するかの違いしかないです。




[mariadb] Mac で MySQLをアンインストールして mariadbをインストールする

brew でそのままやるとうまく行かない

一旦、mysqlが動いている状態で、DBの内容を吸い出し、データフォルダを削除してから mariadb をインストールするとうまくいく

以下手順

  1. mysql から必要なデータの export
  2. mysql を停止
  3. mysql をアンインストール
  4. データフォルダを削除
  5. /usr/local/var/mysql このフォルダをどこかへ移動(一応戻せるように) インストールできたら削除

  6. mariadb をインストール
  7. 初期設定
  8. データのimport