The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator at rhonda@ubuntu.com to inform them of the time this error occurred, and the actions you performed just before this error.
More information about this error may be available in the server error log.
-
Thread starter binny Start date Aug 30, 2017
binny
Member
I need to install some libraries to compile a 0.4 server on my debian stretch.
But it missing some packages that i need to compile:
E: Package ‘libmysqlclient-dev’ has no installation candidate
What command should i do to install a mysql lib, i can not to compile without it.
Snavy
Alpha — AUUU
binny
Member
- Thread Starter
- #3
apt-cache search libmysqlclient
libmariadbclient-dev-compat — MariaDB database development files (libmysqlclient compatibility)
libglpk40 — linear programming kit with integer (MIP) support
libcrypt-mysql-perl — Perl module to emulate the MySQL PASSWORD() function
default-libmysqlclient-dev — MySQL database development files (metapackage)
Should i do apt-get install default-libmysqlclient-dev ?
Snavy
Alpha — AUUU
apt-cache search libmysqlclient
libmariadbclient-dev-compat — MariaDB database development files (libmysqlclient compatibility)
libglpk40 — linear programming kit with integer (MIP) support
libcrypt-mysql-perl — Perl module to emulate the MySQL PASSWORD() function
default-libmysqlclient-dev — MySQL database development files (metapackage)
Should i do apt-get install default-libmysqlclient-dev ?
Так получается, что сейчас тружусь над планировщиком для MySQL соединений. И тут недавно пришлось покапаться в документации/блогах и т.д. И вот решил поделиться с сообществом как реализовать асинхронные запросы к MySQL серверу на С++ используя API и библиотеку libmysqlclient.
Для того, чтобы начать программировать с использованием API MySQL, нам нужен заголовочный файл mysql.h.
И библиотека libmysqlclient. Для deb-подобных ОС всё это можно поставить так:
Компилятору указываем следующее:
-L/path/to/mysqliclientlib/ -lmysqlclient
Если пишите код в Qt Creator, то в файле проекта можно добавить следующее(у вас может быть другой путь):
LIBS += -L/usr/lib/mysql -lmysqlclient
У нас почти всё готово, для того чтобы работать с MySQL на С++.
Определяемся: асинхронные запросы — несколько параллельных запросов к базе без использования потоков (thread). Используя функцию mysql_real_query этого добиться невозможно, т.е. программа будет ожидать результат(ответ) от сервера.
Кроме всего прочего, я использую библиотеку libevent для отлова событий. Поставить её можно так:
Указываем компилятору:
LIBS += -L/usr/lib/mysql -lmysqlclient -L/usr/lib/ -levent
Заголовочный файл:
#include
Всё, всё готово. Приступаем. Итак пишем класс который будет посылать запросы асинхронно. У меня этот класс содержит ещё методы — я остановлюсь только на тех, которые имеют отошение к теме.
В конструкторе класса (или где-то ещё) инициализируем событийную базу:
Далее нам будет необходимо установить соединения с сервером и «запомнить» их. Бежим в цикле по заданном числу запросов и сохраняем соединения в векторе v.
Осталось выполнить нужные нам запросы по этим коннекшнам:
На этом почти всё. Осталось почистить за собой:
И последнее — функция обработки результата запроса. Она имеет вид: