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

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

iPhone上的預設地圖是Apple專有的地理位置供應商「地圖」。儘管地圖越來越好,但它在美國以外的地區運作不佳。與谷歌地圖相比,它沒有什麼可提供的。在本文中,我們討論了使用Google地圖成為iPhone上的預設地圖的可行性步驟。如何在iPhone中使Google地圖成為預設地圖將Google地圖設定為手機上的預設地圖應用程式比您想像的要容易。請依照以下步驟操作–先決條件步驟–您必須在手機上安裝Gmail。步驟1–開啟AppStore。步驟2–搜尋“Gmail”。步驟3–點選Gmail應用程式旁

拼多多軟體內提供的商品好物非常多,隨時隨地想買就買,而且每一件商品品質都是嚴格把關的,件件商品都是正品,不同還有非常多優惠的購物折扣,讓大家網購根本停不下來。輸入手機號碼在線登錄,在線添加多個收貨地址和聯繫方式,可以隨時查看最新的物流動態,不同品類的商品板塊都是開放的,搜索上下滑動選購下單,足不出戶輕鬆體驗便捷的網購服務,還能查看所有的購買記錄,包括自己買過的商品,數十個購物紅包、優惠券免費領取使用,現在小編在線詳細為拼多多用戶們帶來查看買過的商品記錄的方法。 1.打開手機,點選拼多多圖標,

C++是一種廣泛使用的程式語言,在編寫倒數計時器方面非常方便且實用。倒數計時程式是一種常見的應用,它能為我們提供非常精確的時間計算和倒數功能。本文將介紹如何使用C++來寫一個簡單的倒數計時程式。實現倒數程序的關鍵就是使用計時器來計算時間的流逝。在C++中,我們可以使用time.h頭檔中的函數來實作計時器的功能。下面是一個簡單的倒數計時程式的程式碼

您的手機中缺少時鐘應用程式嗎?日期和時間仍將顯示在iPhone的狀態列上。但是,如果沒有時鐘應用程序,您將無法使用世界時鐘、碼錶、鬧鐘等多項功能。因此,修復時鐘應用程式的缺失應該是您的待辦事項清單的首位。這些解決方案可以幫助您解決此問題。修復1–放置時鐘應用程式如果您錯誤地從主畫面中刪除了時鐘應用程序,您可以將時鐘應用程式放回原位。步驟1–解鎖iPhone並開始向左側滑動,直到到達「應用程式庫」頁面。步驟2–接下來,在搜尋框中搜尋「時鐘」。步驟3–當您在搜尋結果中看到下方的「時鐘」時,請按住它並

您是否每天在大約相同的時間頻繁地造訪同一網站?這可能會導致花費大量時間打開多個瀏覽器選項卡,並在執行日常任務時使瀏覽器充滿混亂。好吧,打開它而不必手動啟動瀏覽器怎麼樣?這非常簡單,不需要您下載任何第三方應用程序,如下所示。如何設定任務計劃程序以開啟網站?按鍵,在搜尋框中鍵入任務計劃程序,然後按一下開啟。 Windows在右側側邊欄上,按一下「建立基本任務」選項。在名稱欄位中,輸入要開啟的網站的名稱,然後按一下下一步。接下來,在觸發器下,按一下時間頻率並點擊下一步。選擇您希望活動重複多長時間並點擊下一步。選擇啟

您在嘗試使用應用程式時是否收到“無法允許存取攝影機和麥克風”?通常,您可以在需要提供的基礎上向特定物件授予攝影機和麥克風權限。但是,如果您拒絕權限,攝影機和麥克風將無法運作,而是顯示此錯誤訊息。解決這個問題是非常基本的,你可以在一兩分鐘內完成。修復1–提供相機、麥克風權限您可以直接在設定中提供必要的攝影機和麥克風權限。步驟1–轉到“設定”選項卡。步驟2–打開「隱私與安全」面板。步驟3–在那裡打開“相機”權限。步驟4–在裡面,您將找到已要求手機相機權限的應用程式清單。步驟5–開啟指定應用的“相機”

在iOS17中,蘋果不僅增加了幾個新的訊息功能,而且還調整了訊息應用程式的設計,使其外觀更乾淨。現在,所有iMessage應用程式和工具(如相機和照片選項)都可以透過點擊鍵盤上方和文字輸入欄位左側的「+」按鈕來存取。點擊“+”按鈕會彈出一個選單列,該列具有預設的選項順序。從頂部開始,有相機,照片,貼紙,現金(如果可用),音訊和位置。最底部是一個「更多」按鈕,點擊該按鈕時會顯示任何其他已安裝的訊息應用程式(您也可以向上滑動以顯示此隱藏清單)。如何重新組織您的iMessage應用程式您可以透過以下方

圖形驅動程式是PC上最重要的驅動程式之一,直接影響效能和遊戲體驗。但是,當透過安裝程式更新驅動程式時,許多人遇到“您的系統具有鎖定到製造商規格的驅動程式”錯誤。出現此問題的原因是製造商限制更新,除非從其末端專門推送更新。這確保了穩定性,但對許多人來說可能是一個問題。因此,讓我們找出如何立即解決問題!如何修復您的系統具有鎖定在Windows11上的製造商規格的驅動程式?在我們轉向稍微複雜的解決方案之前,請先嘗試以下快速解決方案:確保你的電腦和作業系統符合驅動程式的系統要求。將電腦啟動到安全模式,然
