8.3 Connector/ODBC и приложение оба используют OpenSSL
Если Connector/ODBC подключается к серверу MySQL безопасно, а приложение, использующее это подключение, само обращается к библиотеке OpenSSL, приложение может выйти из строя, так как в этом случае будут использоваться две копии библиотеки OpenSSL.
Connector/ODBC 8.0 и более поздние версии связываются с OpenSSL динамически, в то время как более ранние версии Connector/ODBC связываются со статически. Это решает проблемы, связанные с использованием двух копий OpenSSL из одного приложения.
Протоколы подключения TLSv1.0 и TLSv1.1 были устаревшими в Connector/ODBC 8.0.26 и удалены в версии 8.0.28.
См. также параметр подключения tls-versions.
Чтобы предотвратить проблему, в вашем приложении не допускайте одновременной инициализации OpenSSL в одном потоке и открытия подключения Connector/ODBC в другом потоке (что также инициализирует openSSL). Например, используйте мьютекс для обеспечения синхронизации между вызовами SQLDriverConnect() или SQLConnect() и инициализацией openSSL. Кроме того, если возможно, выполните следующее:
Используйте сборку Connector/ODBC, которая связывается (статически или динамически) с версией библиотеки
libmysqlclient, которая в свою очередь динамически связана с той же библиотекой OpenSSL, к которой обращается приложение.При создании сборки Connector/ODBC, которая связывается (статически или динамически) с версией библиотеки
libmysqlclient, которая в свою очередь статически связана с библиотекой OpenSSL, НЕ экспортируйте символы OpenSSL в вашу сборку. Это предотвращает неправильное разрешение символов приложения; однако это не предотвращает другие проблемы, возникающие при запуске двух копий кода OpenSSL в одном приложении.
© 2025 Oracle
Licensed under the GPLv2 License.