Когда то поднимал тему на RSDN давайте сделаем локальный embaddeed полнофункциональный MySQL сервер, никто не ответил, я взял и сделал.
Итак тот embadded серврер который предоставляет MySQL меня уж никак не удовлетворял, а именно по причинам:
— не поддерживал репликацию
— не поддерживал горячий перезапуск, кстати горячий перезапуск не поддерживает и нормальный MySQL сервер, что бы перезапустить сервер с другим конфигом надо выгрузить его из памяти (остановить службу) а потом запустить (запустить службу).
Я взял сырцы MySQL покопался в INNODB движке и сделал, полноценный MySQL сервер в виде dll который можно использовать и поставлять прямо с приложением.
Который:
— поддерживает репликацию
— позволяет перезапустить себя на другом конфиге не выгружаясь из памяти.
Как следствие туда добавилось два метода:
int mysql_server_start( const char* configFilePath );
int mysql_server_stop();