/* this function is required so that global memory is allocated against this library nlm, and not against a paticular client */ int _NonAppStart(void *NLMHandle, void *errorScreen, const char *commandLine, const char *loadDirPath, size_t uninitializedDataLength, void *NLMFileHandle, int (*readRoutineP)( int conn, void *fileHandle, size_t offset, size_t nbytes, size_t *bytesRead, void *buffer ), size_t customDataOffset, size_t customDataSize, int messageCount, const char **messages) { mysql_server_init(0, NULL, NULL); init_available_charsets(); return 0; }
/* button which handle the init of mysql server or quit the app */ void __fastcall TForm1::ToggleButtonClick(TObject *Sender) { if (!is_server_started) { mysql_server_init(NULL, NULL, (char **)server_groups) ; connect_server(); get_dbs(); } else { mysql_server_end(); Close(); } }
int main(int argc, char *argv[]) { int option_index= 0; int c; ma_progname= argv[0]; mysql_server_init(0, NULL, NULL); if (argc <= 1) { usage(); exit(1); } c= getopt_long(argc, argv, "bdapnvh?", long_options, &option_index); switch(c) { case 'a': /* all */ show_builtin(); show_dynamic(NULL); break; case 'b': /* builtin */ show_builtin(); break; case 'd': /* dynamic */ show_dynamic(NULL); break; case 'v': version(); break; case 'n': if (argc > 2) show_file(argv[2]); break; case 'p': if (argc > 2) show_dynamic(argv[2]); break; case '?': usage(); break; default: printf("unrecocognized option: %s", argv[1]); exit(1); } exit(0); }
static void qServerInit() { #ifndef Q_NO_MYSQL_EMBEDDED # if MYSQL_VERSION_ID >= 40000 if ( qMySqlInitHandledByUser || qMySqlConnectionCount > 1 ) return; // this should only be called once // has no effect on client/server library // but is vital for the embedded lib if ( mysql_server_init( 0, 0, 0 ) ) { # ifdef QT_CHECK_RANGE qWarning( "QMYSQLDriver::qServerInit: unable to start server." ); # endif } # endif // MYSQL_VERSION_ID #endif // Q_NO_MYSQL_EMBEDDED }
static PyObject* wsql_server_init(PyObject *self, PyObject *args, PyObject *kwargs) { static char *kwlist[] = {"args", "groups", NULL}; char **cmd_args_c=NULL, **groups_c=NULL, *s; Py_ssize_t cmd_argc=0, i, groupc; PyObject *cmd_args=NULL, *groups=NULL, *item; if (wsql_server_init_done) { PyErr_SetString(wsql_programming_error, "already initialized"); return NULL; } if (!PyArg_ParseTupleAndKeywords(args, kwargs, "|OO", kwlist, &cmd_args, &groups)) return NULL; #if MYSQL_VERSION_ID >= 40000 if (cmd_args) { if (!PySequence_Check(cmd_args)) { PyErr_SetString(PyExc_TypeError, "args must be a sequence"); goto finish; } cmd_argc = PySequence_Size(cmd_args); if (cmd_argc == -1) { PyErr_SetString(PyExc_TypeError, "args could not be sized"); goto finish; } cmd_args_c = (char **) PyMem_Malloc(cmd_argc * sizeof(char *)); for (i=0; i< cmd_argc; ++i) { item = PySequence_GetItem(cmd_args, i); s = PyString_AsString(item); Py_DECREF(item); if (!s) { PyErr_SetString(PyExc_TypeError, "args must contain strings"); goto finish; } cmd_args_c[i] = s; } } if (groups) { if (!PySequence_Check(groups)) { PyErr_SetString(PyExc_TypeError, "groups must be a sequence"); goto finish; } groupc = PySequence_Size(groups); if (groupc == -1) { PyErr_SetString(PyExc_TypeError, "groups could not be sized"); goto finish; } groups_c = (char **) PyMem_Malloc((1+groupc)*sizeof(char *)); for (i = 0; i < groupc; ++i) { item = PySequence_GetItem(groups, i); s = PyString_AsString(item); Py_DECREF(item); if (!s) { PyErr_SetString(PyExc_TypeError, "groups must contain strings"); goto finish; } groups_c[i] = s; } groups_c[groupc] = (char *)NULL; } /* even though this may block, don't give up the interpreter lock so that the server can't be initialized multiple times. */ if (mysql_server_init(cmd_argc, cmd_args_c, groups_c)) { wsql_raise_error(NULL); goto finish; } #endif wsql_server_init_done = 1; Py_RETURN_NONE; finish: PyMem_Free(groups_c); PyMem_Free(cmd_args_c); return NULL; }
int db__driver_open_database(dbHandle * handle) { char *name; dbConnection default_connection; MYSQL *res; db_get_connection(&default_connection); name = G_store(db_get_handle_dbname(handle)); /* if name is empty use default_connection.databaseName */ if (strlen(name) == 0) name = default_connection.databaseName; G_debug(3, "db_driver_open_database() mysql: database definition = '%s'", name); /* Embedded version */ { char *datadir, *database; char *server_args[4]; char *buf; if (!replace_variables(name, &datadir, &database)) { db_d_append_error(_("Unable parse MySQL embedded database name")); db_d_append_error(mysql_error(connection)); db_d_report_error(); return DB_FAILED; } server_args[0] = "mesql"; /* this string is not used */ G_asprintf(&buf, "--datadir=%s", datadir); server_args[1] = buf; /* With InnoDB it is very slow to close the database */ server_args[2] = "--skip-innodb"; /* OK? */ /* Without --bootstrap it complains about missing * mysql.time_zone_leap_second table */ server_args[3] = "--bootstrap"; /* OK? */ if (mysql_server_init(4, server_args, NULL)) { db_d_append_error(_("Cannot initialize MySQL embedded server")); db_d_append_error(mysql_error(connection)); db_d_report_error(); free(datadir); free(database); return DB_FAILED; } connection = mysql_init(NULL); mysql_options(connection, MYSQL_OPT_USE_EMBEDDED_CONNECTION, NULL); res = mysql_real_connect(connection, NULL, NULL, NULL, database, 0, NULL, 0); free(datadir); free(database); if (res == NULL) { db_d_append_error(_("Unable to connect to MySQL embedded server: ")); db_d_append_error(mysql_error(connection)); db_d_report_error(); return DB_FAILED; } } return DB_OK; }