Как устранить ошибку mysql «недостаточно памяти» во время mysql_init в c ++?

У меня проблема с новым развертыванием серверной программы «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.

В чем дело ?
Большое спасибо !

0

Решение

Я только что столкнулся с той же проблемой, и, возможно, я нашел обходной путь.
У нас также было две машины, одна с нашим программным обеспечением, а другая — с одним и тем же сообщением. Insufficient memory: can not create handler for mysql_init(),

Через некоторое время мы заметили, что вторая машина прошла через некоторые обновления пакетов. libmysqlclient18 был один из этих пакетов.

Однажды я понизил мой libmysqlclient18 с 5.5.38 до 5.5.22 (та же версия, что и рабочая) она снова заработала!

0

Другие решения


По вопросам рекламы [email protected]