Libmysqld падает на старте - PullRequest
1 голос
/ 02 июня 2011

Я пытался создать очень простое приложение, используя встроенный сервер MySQL.Я в основном взял простой пример из документации MySQL и немного его изменил.

#include <stdio.h>
#include <stdlib.h>
#include <stdarg.h>
#include "mysql.h"

MYSQL *mysql;

static char *server_options[] = { "mysql_test", "--datadir=/Users/admin/libmysqldtest", "--language=/Users/admin/libmysqldtest/german", NULL };
int num_elements = (sizeof(server_options) / sizeof(char *)) - 1;

static char *server_groups[] = { "libmysqld_server", "libmysqld_client", NULL };

int main(void)
{
    mysql_library_init(num_elements, server_options, server_groups);
    mysql = mysql_init(NULL);
    mysql_options(mysql, MYSQL_READ_DEFAULT_GROUP, "libmysqld_client");
    mysql_options(mysql, MYSQL_OPT_USE_EMBEDDED_CONNECTION, NULL);

    //Do some queries here...

    mysql_close(mysql);
    mysql_library_end();

    return 0;
}

При запуске регистрируется

mysql_embedded: Unknown error 1146

и инициализируется InnoDB.После этого приложение вылетает на mysql_init.Связывание с libmysqld-debug Я получаю следующее сообщение об ошибке:

Assertion failed: (argc && *argc >= 1), function handle_options, file 
/Volumes/hd2/pb2/build/sb_0-3198286-1302522144.5/mysql-5.5.12/mysys/my_getopt.c, line 167

Я использую статическую библиотеку libmysqld (-debug), распространяемую с сервером сообщества TAR-Archive для Mac OS X с веб-сайта MySQL (64-разрядная версия)).

...