我正在尝试使用MySQL C Connector连接到数据库.我添加了库和源代码正确编译了所有必要的#include语句.我使用的代码如下:
#include
#include
#include "mysql_connection.h"
#include
#include
#include
#include
using namespace std;
int main(void)
{
using namespace sql;
Driver *driver;
Connection *con;
driver = get_driver_instance();
con = driver -> connect("tcp://127.0.0.1:3306/test", "test", "test");
}
代码是从示例中获取的,应该可以正常工作.我已经大大缩短了代码,因为它是在最后的“driver – > connect”行中抛出错误.我的错误消息如下:
*** glibc detected *** /home/username/NetBeansProjects/mysql/dist/Release/GNU-Linux-x86/mysql:
free(): invalid pointer: 0x091dd468 ***
我在Linux Mint Lisa上运行最新版本的MySQL并使用NetBeans 7.1作为IDE.如上所述,代码正确编译,并且它位于发生错误的最后一个连接行.任何有关其他连接机制的帮助或建议都将非常感激.
UPDATE
以下是Driver类中定义连接的代码
class CPPCONN_PUBLIC_FUNC Driver
{
protected:
virtual ~Driver() {}
public:
// Attempts to make a database connection to the given URL.
virtual Connection * connect(const sql::SQLString& hostName, const sql::SQLString& userName, const sql::SQLString& password) = 0;
virtual Connection * connect(ConnectOptionsMap & options) = 0;
...
没什么可看的……在我的拙见中……
解决方法:
我已经为Ubuntu 12.04找到了这个问题的解决方案,它花了我大约48小时没有睡觉但是好了,这里就是.我确定这个修复程序适用于其他版本的Ubuntu.
从http://www.sopcast.com/download/libstdcpp5.tgz下载libstdc .so.5.您需要提取并将文件放在/usr/lib中.
确保在使用g构建应用程序时添加-llibstdc .so.5(此链接stdc v5)
然后谷歌’Connector c Ubuntu 12.04’并寻找Builds并下载你的Arch .deb.
对于Ubuntu 12.04,这里是.debs的URL
https://launchpad.net/ubuntu/precise/+source/mysql-connector-c++/+builds
选择你的拱门即. Amd64并在Built Files下下载两个.debs.使用包管理器打开并安装.您应该能够在没有和发布的情况下运行应用程序.
编辑
您不需要链接libstdc .so.5,您可能必须在您的系统上,但在Ubuntu 12.04 amd64上它不需要.
标签:c-2,mysql,mysql-connector
来源: https://codeday.me/bug/20190626/1291016.html