Heim  >  Artikel  >  Datenbank  >  MySQL嵌入式版本的小程序例子

MySQL嵌入式版本的小程序例子

WBOY
WBOYOriginal
2016-06-07 16:18:241395Durchsuche

# This assumes the MySQL software is installed in /usr/local/mysql #inc := /usr/local/mysql/include/mysql #lib := /usr/local/mysql/lib # If you have not installed the MySQL software yet, try this instead topdir := /home/mysql/mysql-5.5.35

# This assumes the MySQL software is installed in /usr/local/mysql

#inc      := /usr/local/mysql/include/mysql

#lib      := /usr/local/mysql/lib

 

# If you have not installed the MySQL software yet, try this instead

topdir   := /home/mysql/mysql-5.5.35

inc      := $(topdir)/include

lib      := $(topdir)/libmysqld

 

CXX      := g++

CPPFLAGS := -I$(inc) -D_THREAD_SAFE -D_REENTRANT

CXXFLAGS := -g -Wall

LDFLAGS  :=

# You can change -lmysqld to -lmysqlclient to use the

# client/server library

LDLIBS    = -L$(lib) -lmysqld -lm -lcrypt -ldl -lz -lrt

 

ifneq (,$(shell grep FreeBSD /COPYRIGHT 2>/dev/null))

# FreeBSD

LDFLAGS += -pthread

else

# Assume Linux

LDLIBS += -pthread

endif

 

# This works for simple one-file test programs

sources := $(wildcard *.cc)

objects := $(patsubst %cc,%o,$(sources))

targets := $(basename $(sources))

 

all: $(targets)

 

clean:

    rm -f $(targets) $(objects) *.core

 

---

#include

#include

#include

 

using namespace std;

 

const char *server_options[] =

       { "mysql_test", "--defaults-file=my.cnf", NULL };

int num_elements = (sizeof(server_options) / sizeof(char *)) - 1;

 

const char *server_groups[]= { "libmysqld_server",

                               "libmysqld_client",

                               NULL};

 

bool is_server_started= false;

 

MYSQL *MySQL= NULL;

 

const char *db= NULL;

 

void start_server()

{

  cout

  if (mysql_library_init(num_elements, (char **) server_options, (char **) server_groups)) {

    is_server_started= false;

    cout

  }

  else {

    is_server_started= true;

    cout

  }

}

 

void stop_server()

{

  cout

  mysql_server_end();

}

 

bool connect_server()

{

  cout

  bool rc = true;

 

  MySQL = mysql_init(NULL);

  if (!MySQL)

    return rc;

 

  if (mysql_real_connect(MySQL, NULL, NULL, NULL, db, 0, NULL, 0))

    rc = false;

  

  MySQL->reconnect= 1;

  return rc;

}

 

void output_rows(MYSQL_RES *res)

{

  MYSQL_ROW row;

  unsigned long n = 0;

 

  while ((row= mysql_fetch_row(res)) != 0)

  {

    mysql_field_seek(res, 0);

    for (unsigned int i= 0 ; i

      cout

  }

}

 

bool get_dbs()

{

  MYSQL_RES *res;

 

  if (!is_server_started)

    return true;

 

  if (!(res= mysql_list_dbs(MySQL, "%")))

    return true;

 

  output_rows(res);

  mysql_free_result(res);

  return false;

}

 

int main(int argc, char *argv[])

{

  start_server();

  if (is_server_started) {

    cout

    if (!connect_server()) {

      get_dbs();

    }

    stop_server();

  }

 

  return 0;

}

 

---

[libmysqld_client]

 

[libmysqld_server]

basedir=/home/mysql/

datadir=/home/mysql/data

tmpdir=/home/mysql/tmp

log-error=/home/mysql/alert.log

lc_messages_dir=/home/mysql/share

 

innodb_data_home_dir=/home/mysql/data

innodb_log_group_home_dir=/home/mysql/data

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn