Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Базы данных > [C(Linux)]Работа с MySQL без mysql.h


Автор: Avariya 12.12.2011, 22:50
Здравствуйте!
Получил задание написать простенькую програму на языке C.
Програма должна связаться с БД MySQL отправить пару запросов и получить на них ответы.
Вся загвоздка в том, что использовать библиотеки на подобие mysql.h запрещено.
Может кто-то встречал литературу на эту тему, ну или примеры работы, помогите ссылкой, пожалуйста.
P.S. Подразумевается работа с сокетами.

Автор: Alca 13.12.2011, 01:13
Цитата

Вся загвоздка в том, что использовать библиотеки на подобие mysql.h запрещено

а что можно ипользовать?

Добавлено через 1 минуту и 25 секунд
 smile 

Автор: Avariya 13.12.2011, 02:48
Ну как сказать, библиотеку сокетов, иостримы всякие, библиотеки ерроров, инпуты\аутпуты.
Нельзя использовать клиентские библиотеки БД. Тоесть те библиотеки в которых прописаны функции подключения к БД, передача запросов етс.

Автор: newbee 13.12.2011, 08:24
Все очень просто, гуглится по mysql protocol => http://forge.mysql.com/wiki/MySQL_Internals_ClientServer_Protocol

Есть второй вариант более хакерский, но, когдна детальное понимание ситуации не требуется, простой: берем снифер wireshark, устанавливаем фильтр ip.dst на ip-адрес mysql-сервера, соединяемся с ним и внимательно втыкаем в то, что он рисует: можно наглядно раскрыть весь стек протоколов от Ethernet-уровня вплоть до MySQL в твоем случае, там ты увидишь, что клиент с сервером устанавливают TCP соединение, увидишь детали mysql login request, mysql query request и всего остального.

А на Алочку не обращай внимания, он как обычно просто поумничать зашел.

Автор: Avariya 13.12.2011, 22:50
А можно ли совет, или где прочитать как исполнить все эти команды, что даны в статье. А-то что-то я дуб-дерево...
Ну и опять таки, как подключиться к локальному северу(не нашел в статье).

Автор: Alca 13.12.2011, 22:52
Avariya, сейчас тебе newbee все напишет, с примером smile 

Автор: Avariya 13.12.2011, 23:05
Alca, сейчас он не напишет так как он перекочевал в оффлайн. Но мое состояние сейчас именно как на смайлике. И даже бесконечный цикл совпадает. Так как хз по чему искать, как использовать, где читать и тд.
Больше не офтоплю.

Автор: newbee 13.12.2011, 23:11
Avariya, В статье даны не "команды", а последовательности кодов, которые нужно слать через установленное TCP-соединение. Мой совет: попрактикуйся с сокетами на чем-нибудь простом: эхо сервер и т.д., а потом переходи к MySQL.

Автор: Alexoid 6.4.2012, 12:04
стандартный подход для VC++: msado15.dll и http://www.connectionstrings.com/mysql и 

#import "C:\Program Files\Common Files\System\ADO\msado15.dll" \
no_namespace rename("EOF", "EndOfFile")

Возможно понадобиться клиентский драйвер на сайте MySQL

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)