2

我试图让 MySQL++ 在支持 SSL 的 Debian 6 上正常工作。我已经在 Windows 7 上测试了所有东西,效果很好。一切都是加密的。不过,我在将它移植到 Debian 时遇到了一些麻烦。

这是我的错误:

terminate called after throwing an instance of 'mysqlpp::BadOption' what(): Option not supported by database driver v5.1.49

这是我设置证书文件的要求:

connection->set_option(new mysqlpp::SslOption("/root/certs/client-key.pem", "/root/certs/client-cert.pem", "/root/certs/ca-cert.pem", "/root/certs", "DHE-RSA-AES256-SHA"));

我注意到在配置 MySQL++ 时,它会在 libmysqlclient 中查找 mysql_ssl_set()。它没有找到该功能。

checking for mysql_ssl_set in -l... no

4

1 回答 1

2

此错误已在今天发布的 MySQL++ 3.2.0 中修复。

在旧版本中,测试中存在一个错误mysql_ssl_set()。如果您不能使用当前版本但可以修补您的版本的源代码,这将解决它:

Index: config/mysql_ssl.m4
===================================================================
--- config/mysql_ssl.m4 (revision 2696)
+++ config/mysql_ssl.m4 (working copy)
@@ -10,7 +10,7 @@
     #
     # Check for mysql_ssl_set() in libmysqlclient(_r)
     #
-    AC_CHECK_LIB($MYSQL_C_LIB, mysql_ssl_set, [
+    AC_CHECK_LIB($MYSQL_C_LIB_NAME, mysql_ssl_set, [
        AC_DEFINE(HAVE_MYSQL_SSL_SET,, Define if your MySQL library has SSL functions)
     ]) dnl AC_CHECK_LIB(mysqlclient, mysql_ssl_set)
 ]) dnl  MYSQL_WITH_SSL

然后,您将需要重新引导源代码树并重建。

于 2011-10-17T21:22:00.803 回答