MySQL Connector/C の代わりに MariaDB Connector/C を使う

mysqlclientWindows 版バイナリ wheel を作るために、以前は MySQL Connector/C を使っていたのですが、しばらく問題があって利用できませんでした。

  • static link library が提供されない
  • ビルドの仕方がよくわからん。ドキュメントもない。
  • TLS と sha256_password / caching_sha2_password のために OpenSSL がいる

ちなみに、 MySQL Connector/PythonWindows 版は site-packages 直下 (つまりグローバル) に OpenSSL の dll を含めて必要なものを全部ぶちまけるようになっています。ロックだ。それと同じロックな手段をとると当然衝突します。

そこで MariaDB Connector/C の動向をウォッチしていたのですが、最近色々な条件が揃ったので、 mysqlclient の Windows 版は MariaDB Connector/C を使うようにしました。

  • static link をサポートしている
  • ビルドの仕方が(一応)ドキュメントされてる
  • TLS も sha256_password や caching_sha2_password も OpenSSL ではなく Windows API を利用しているので OpenSSL の同梱が不要。

MariaDB Connector/C は Windows 版バイナリを配布しているのですが、 caching_sha2_password などのプラグインが DLL の状態で同梱されているので、完全 static link したい場合にはちょっとあいません。

wiki に完全 static なライブラリのビルド方法を残しておいたので、必要な方は参考にしてください。

このブログに乗せているコードは引用を除き CC0 1.0 で提供します。