MySQL Connector/C の代わりに MariaDB Connector/C を使う
mysqlclient の Windows 版バイナリ wheel を作るために、以前は MySQL Connector/C を使っていたのですが、しばらく問題があって利用できませんでした。
- static link library が提供されない
- ビルドの仕方がよくわからん。ドキュメントもない。
- TLS と sha256_password / caching_sha2_password のために OpenSSL がいる
ちなみに、 MySQL Connector/Python の Windows 版は 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 なライブラリのビルド方法を残しておいたので、必要な方は参考にしてください。