У меня проблема с новым развертыванием серверной программы «MyServer» на Ubuntu 12.04.
Эта программа отлично работает на 1-й машине.
Но на новой машине программа MyServer возвращает исключение во время mysql_init ():
«Недостаточно памяти: невозможно создать обработчик для mysql_init ()«
Тем не менее, эти 2 машины имеют 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 (та же версия, что и рабочая) она снова заработала!