搜索
首页数据库mysql教程MySQL嵌入式版本的小程序例子_MySQL

bitsCN.com MySQL嵌入式版本越来越式微了。碰巧有个小应用用到了它,顺便记录一下。
文档可以参考http://dev.mysql.com/doc/refman/5.6/en/libmysqld-example.html,看起来年久失修的样子,没法一看就懂。
希望下面这个简化的步骤可以起到点作用。
1. 下载代码并且进行版本编译。这个还比较简单,文档说的也很靠谱。
$ cmake . -DCMAKE_INSTALL_PREFIX=/home/mysql -DWITH_EMBEDDED_SERVER=1
$ make clean$ make -j 8
$ make install

2. 写个小程序
$ ls
GNUmakefile main.cc my.cnf
具体代码就看附件好了,其实很简单。
$ make

3. 安装好MySQL,初始化一下
$ cd /home/mysql
$ scripts/mysql_install_db --defaults-file=/home/mysql/my.cnf

4. 启动小程序
$ ./main
附件:

# 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 insteadtopdir   := /home/mysql/mysql-5.5.35inc      := $(topdir)/includelib      := $(topdir)/libmysqldCXX      := g++CPPFLAGS := -I$(inc) -D_THREAD_SAFE -D_REENTRANTCXXFLAGS := -g -WallLDFLAGS  := # You can change -lmysqld to -lmysqlclient to use the# client/server libraryLDLIBS    = -L$(lib) -lmysqld -lm -lcrypt -ldl -lz -lrtifneq (,$(shell grep FreeBSD /COPYRIGHT 2>/dev/null))# FreeBSDLDFLAGS += -pthreadelse# Assume LinuxLDLIBS += -pthreadendif# This works for simple one-file test programssources := $(wildcard *.cc)objects := $(patsubst %cc,%o,$(sources))targets := $(basename $(sources))all: $(targets)clean:	rm -f $(targets) $(objects) *.core---#include <mysql.h>#include <iostream>#include <cassert>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 << "enter start_server()" << endl;  if (mysql_library_init(num_elements, (char **) server_options, (char **) server_groups)) {    is_server_started= false;    cout << "ERROR: start server failed." << endl;  }  else {    is_server_started= true;    cout << "INFO: start server OK." << endl;  }}void stop_server(){  cout << "enter stop_server()" << endl;  mysql_server_end();}bool connect_server(){  cout << "enter connect_server()" << endl;  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 < mysql_num_fields(res); i++)      cout << "row[" << n++ << "]:"<< row[i] << endl;   }}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 << "server started." << endl;    if (!connect_server()) {      get_dbs();    }    stop_server();  }  return 0;}---[libmysqld_client][libmysqld_server]basedir=/home/mysql/datadir=/home/mysql/datatmpdir=/home/mysql/tmplog-error=/home/mysql/alert.loglc_messages_dir=/home/mysql/shareinnodb_data_home_dir=/home/mysql/datainnodb_log_group_home_dir=/home/mysql/data


bitsCN.com

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
ace-guard client exe是什么程序ace-guard client exe是什么程序Sep 22, 2021 pm 06:07 PM

ace-guard client exe是腾讯代理游戏的反作弊程序,是ewido的守护进程,保护“ewido.exe”进程不被恶意软件关闭;使用它可以检测游戏用户是否有开挂行为,可自动进行封号处理。

microsoft visual c++可以卸载吗?microsoft visual c++可以卸载吗?Sep 14, 2022 am 11:36 AM

“microsoft visual c++”是可以卸载的,但是不建议卸载;“microsoft visua”这些都是一些微软的组件,里面包括一些“C++”标准库、原始数据库等相关信息,很多软件尤其是游戏中需要“microsoft visual c++”中的环境组件,如果缺少了“C++”标准库的支持,可能会造成软件的无法运行。

卸载程序的文件名是什么卸载程序的文件名是什么Oct 21, 2022 pm 02:05 PM

卸载程序的文件名是“uninstall.exe”或“uninst.exe”,是用以协助使用者将软件自电脑中删除的一种电脑软件。使用方法:1、在文件资源管理器中挖掘并导航到应用程序EXE文件所在的文件路径;2、通过文件路径打开应用程序的安装目录,找到“uninstall.exe”文件;3、双击卸载文件“uninstall.exe”即可开始程序删除过程。

java和嵌入式哪个前景好java和嵌入式哪个前景好Oct 24, 2023 am 09:32 AM

Java和嵌入式系统都是计算机领域中非常重要的技术方向,它们各自具有不同的应用场景和发展前景。下面我将从就业市场、技术发展、行业需求和发展趋势等方面来分析Java和嵌入式系统的前景。

wmiprvse.exe是什么程序wmiprvse.exe是什么程序Sep 02, 2022 am 10:59 AM

“wmiprvse.exe”是windows管理规范程序;该程序是windows操作系统的一个组件,用于通过“WinMgmt.exe”程序处理WMI操作,能够实现为用户提供管理信息和企业环境中的控制功能。

利用C++实现嵌入式系统的远程控制功能利用C++实现嵌入式系统的远程控制功能Aug 25, 2023 pm 05:24 PM

利用C++实现嵌入式系统的远程控制功能随着物联网的快速发展,嵌入式系统正成为我们日常生活中不可或缺的一部分。而对于嵌入式系统的开发者来说,如何实现远程控制功能是一个重要的课题。利用C++编程语言,我们可以轻松地实现嵌入式系统的远程控制功能。本文将介绍如何使用C++编写代码来实现此功能,以及给出一些示例代码。首先,我们需要准备一些硬件设备。作为一个嵌入式系统,

追觅首创28cm超薄设计!嵌入式扫拖机器人空间大师Master系列发布追觅首创28cm超薄设计!嵌入式扫拖机器人空间大师Master系列发布Oct 21, 2023 pm 05:17 PM

得益于扫地机智能性和清洁性能的技术革新,扫拖一体机器人近几年越发成为全球家装标配的重点新电器,其在家装中的前置化、嵌入式趋势也更加明显。为促进行业进步和帮助广大消费者解决对于嵌入及水电改造等核心痛点,作为全球智能清洁家电领导品牌的追觅科技于近日带来全新解题思路,革新性地重磅推出高度仅为28cm的超薄基站嵌入式扫拖一体机器人——空间大师Master系列(下文简称“追觅空间大师Master系列”),该款产品结合五大追觅首创技术优势及前沿的嵌入式设计理念,实现领先于全行业的升级跃迁,进而帮助更多家庭真

PyTorch 2.0正式版发布!一行代码提速2倍,100%向后兼容PyTorch 2.0正式版发布!一行代码提速2倍,100%向后兼容Apr 13, 2023 am 08:34 AM

PyTorch 2.0正式版终于来了!去年12月,PyTorch基金会在PyTorch Conference 2022上发布了PyTorch 2.0的第一个预览版本。跟先前1.0版本相比,2.0有了颠覆式的变化。在PyTorch 2.0中,最大的改进是torch.compile。新的编译器比以前PyTorch 1.0中默认的「eager mode」所提供的即时生成代码的速度快得多,让PyTorch性能进一步提升。除了2.0之外,还发布了一系列PyTorch域库的beta更新,包括那些在树中的库,

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前By尊渡假赌尊渡假赌尊渡假赌

热工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

Dreamweaver Mac版

Dreamweaver Mac版

视觉化网页开发工具

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )专业的PHP集成开发工具

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

功能强大的PHP集成开发环境

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用