我在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(与工作版本相同),它就会再次开始工作!