PDF (Ltr)- 5.2 mb
PDF (A4)- 5.2 mb
HTML下载(TGZ)- 2.7 mb
HTML下载(邮政编码)- 2.7 mb
如果Connector/ODBC安全地连接到MySQL服务器,并且使用该连接的应用程序调用自身的OpenSSL库,那么应用程序可能会失败,因为这时将使用OpenSSL库的两个副本。
请注意
连接器/ODBC 8.0及更高版本动态链接到OpenSSL,而较早的连接器/ODBC版本静态链接到OpenSSL。这解决了使用来自同一应用程序的两个OpenSSL副本的相关问题。
请注意
TLSv1.0和TLSv1.1连接协议在Connector/ODBC 8.0.26中已弃用,对它们的支持可能会在未来的版本中被删除。
为了防止这个问题,在您的应用程序中,不要允许在一个线程中初始化OpenSSL和在另一个线程中打开Connector/ODBC连接(它也初始化OpenSSL)同时发生。例如,使用互斥锁来确保之间的同步SQLDriverConnect ()
或SQLConnect ()
调用和openSSL初始化。除此之外,如果可能的话,实现以下内容:
使用连接器/ODBC的构建,该构建链接(静态或动态地)到
libmysqlclient
库,该库又动态链接到应用程序调用的同一个OpenSSL库。类的版本链接(静态或动态)的连接器/ODBC的构建时
libmysqlclient
库中又静态链接到OpenSSL库的,不要在构建中导出OpenSSL符号。这防止了应用程序符号的不正确解析;但是,这并不能防止在一个应用程序中运行两个OpenSSL代码副本所带来的其他问题。