Home  >  Article  >  Database  >  MySQL嵌入式版本的小程序例子

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

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

# 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

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn