我在Ubuntu 12.04上新部署服务器程序“ MyServer”时遇到问题。
该程序在第一台机器上运行良好。

但是在新机器上,程序MyServer在mysql_init()期间返回异常:
“内存不足:无法为mysql_init()创建处理程序”

但是,这两台机器都具有2Go RAM,MySQL似乎安装得很好(我们可以从mysql客户端运行请求),并且具有相同的my.cnf。

这些错误出现在这些行中:

sql::Driver * driver = get_driver_instance();

if(driver)
{
    // Lets try to connect.
    std::stringstream completeHost;
    completeHost << "tcp://"
                << (configuration->getSocket()->getHost())
                << ":"
                << (configuration->getSocket()->getPort());

    ////// **It throws this exception below** : //////
    sql::Connection * connection = driver->connect(completeHost.str(),
                                                   configuration->getUser(),
                                                   configuration->getPassword());
}


并且连接参数正确,因为这与mysql客户端使用的相同。

怎么了 ?
非常感谢 !

最佳答案

我刚遇到相同的问题,可能已经找到解决方法。
我们还有两台机器,一台运行我们的软件,另一台运行相同的消息Insufficient memory: can not create handler for mysql_init()

一段时间后,我们注意到第二台计算机进行了一些软件包更新。 libmysqlclient18是这些软件包之一。

一旦将libmysqlclient18的版本从5.5.38降级到5.5.22(与工作版本相同),它就会再次开始工作!

10-06 06:43