當前位置:首頁 » 操作系統 » c連接mysqllinux

c連接mysqllinux

發布時間: 2022-04-18 09:24:45

linuxc語言連接Mysql

老大,原來你連 C 的原理都不會啊?

C 語言所有調用函數,都要有聲明,這種外部函數庫的調用,都要用他們的 header 文件來聲明函數變數等等的東西,編譯器會根據實際情況去把這些程序裡面的函數調用鏈接到函數庫的正確位置上。

微軟的產品因為他壟斷了他自己系統的所有功能設計。所以他的系統+他的開發程序+他的開發函數庫就不需要 header 文件了,因為它可以設計為 dll 本身含有足夠的信息去干別的事情了。所以,你別以為你用了微軟的 .net ,他就還是 C 語言了。他已經脫離了 C 語言的范圍了。

GCC一般情況下是編譯器,但編譯器是不夠的,還需要連接器的工作才行。binutils 裡面的軟體提供相關的功能。

要知道以前鏈接到函數庫功能,光有 header 和函數庫文件本體還是不行的,還需要另外的函數庫信息文件來幫助編譯器連接器來找到正確的函數入口位置才行的。

編程 C ,你要選擇你所使用的功能調用方法,GCC 一般調用 mysql 有調用外部 dll ,或者程序自己直接鏈接 mysql 埠,自己分析 mysql 服務進程發送的各種信息!

前一種辦法,可以直接選擇 mysql 客戶端裡面的 SDK 來直接獲得官方的功能支持,但官方 MySQL 是 GPL 協議發布的,你使用他的功能介面後,你的程序也必須以 GPL 發布,不然你就要去選擇其他的函數庫,比如 ODBC 的 mysql 庫。當然還有第三方的 mysql 功能庫可以選擇。
不過你要注意,LGPL 必須嚴格區分你的程序和 LGPL 代碼。你必須動態鏈接到 LGPL 函數庫。如果你的程序包含 LGPL 函數庫一起發布,且 LGPL 庫是你的軟體的必備函數庫,那麼你的程序也必須開源,但不是 GPL 而是 LGPL !

不然你就選擇自己寫程序直接與 mysql 伺服器進行數據傳輸,不使用第三方功能庫。

但我不認為身為一個 Linux 下程序開發人員,會去傻傻的自己寫功能函數而不是用現成的函數庫。

你所遇到的「非要客戶安裝 mysql client 」,就是因為你的軟體調用了一些非你自己編寫的函數調用功能,而為了獲取這些函數而需要安裝幾個 mysql 函數庫的問題。

這個問題我想不應該是一個開發人員提出來的吧?
------------------------------------

樓主你還是重新學習 C 語言吧。.net 的 C 被微軟改的不是真正的 C 語言了,所以你沒辦法按照 C 的標准去比較 .net 和 GCC 的。
而且很多 .net 的編程習慣也沒辦法延續到 GCC 的。

㈡ Linux下C連接MySQL資料庫

skipping incompatible /usr/lib/mysql/libmysqlclient_r.a 這里是說這個庫文件與當前系統的編譯器gcc不一致,你需要確認一下是不是機器位數的問題

gcc -m32 -o test test.c `mysql_config --cflags --libs` 這樣試試

㈢ c語言怎麼連接mysql資料庫

如鵬網上有詳細的視頻教程,楊中科的C語言也能幹大事,裡面講得很清楚。要是在這里講需要寫很多東西,累手,還沒有視頻直觀

㈣ linux系統下c語言連接mysql資料庫時有關mysql_error這個函數的返回值的問題,求知情人士

應該這樣用,連接的時候不要指定資料庫,分步操作和檢測
if(!mysql_real_connect(character_ptr,"localhost","root","24157518",
NULL
,0,NULL,0))
printf("Error
connecting
to
server:
%s\n",
mysql_error(character_ptr));
if(!mysql_select_db(character_ptr,
"test_database"))
printf("Error
connecting
to
database:
%s\n",
mysql_error(character_ptr));

㈤ linux下用c語言操作mysql資料庫。

不好意思,沒看見標題,我寫的是
腳本語言
我把你說的buff當成一個文件了
ID=`sed
-n
'1p'
buff
|
awk
'{printf
$1}'`
NAME=`sed
-n
'1p'
buff
|
awk
'{printf
$2}'`
SCORE=`sed
-n
'1p'
buff
|
awk
'{printf
$3}'`
mysql_query(conn_ptr,"INSERT
INTO
student(id,name,score)
values('$ID','$NAME','$SCORE')");

㈥ linux C語言 連接mysql編碼問題

默認建的資料庫是utf8,建資料庫的時候字體是可以設置的,可以試試,我是有設過中文字碼的,建資料庫的時候設的,可以正確顯示

㈦ 關於linux下c語言鏈接mysql

和.net同樣的道理,你在.net也需要在你的部署包中包含dll才能去連接,除非你靜態聯接了相關的code,
在linux下你需要下載mysql的c庫開發包(libmysql++-dev
libmysql++2c2a
libmysqlclient15-dev
libmysqlclient15off)
這裡面已經包含了動態庫和靜態庫,如果是靜態庫鏈接,你就只需要把你的程序部署給別人即可,如果是動態鏈接,還需要把相關的.so也包含在你的部署包中分發給使用者

㈧ 在linux中如何實現C++與MySql的連接

1,用C的介面。
先裝mysql,只要client就好了,./configure的時候可以用--without-server
然後寫程序的時候包含mysql.h

MYSQL mysql;
mysql_init(&mysql);
初始化mysql引擎,
用mysql_real_connect()函數連接資料庫。
....
mysql.h中有一些對C的API函數,你可以在手冊里查到。你自己可以封裝成類。或者乾脆網上下人家封裝好的代碼。
編譯的時候加-lmysqlclient, -I[path to mysql headers]

2,用mysql的 c++開發包
libmysql++-dev
libmysql++2c2a
libmysqlclient15-dev
libmysqlclient15off

關於裡面的類是如何封裝的,我沒用過,自己看doc吧, 呵呵。

㈨ c++ 怎麼樣利用 mysql++ 連接 mysql 在linux 下

下面有一個用GCC編譯的例子希望對你有所幫助.
#include<stdio.h>
#include<mysql.h>
int main()
{
/*declare structures and variables */
MYSQL mysql;
MYSQL_RES *result;
MYSQL_ROW row;

//initialize MYSQL structure
mysql_init(&mysql);

//connect to database
mysql_real_connect(&mysql,"localhost","john","doe","db1",0,null,0);

//execute query
mysql_query(&mysql,"select title,author from books");

//get result set
result=mysql_store_result(&mysql);

//process result set
while((row=mysql_fetch_row(result))
{
fprintf(stdout,"%s - %s\n",row[0],row[1]);
}

//clean up
mysql_free_result(result);
mysql_close(&mysql);
}
(假設mysql安裝在/usr/local/mysql目錄下)
完成之後,保存該文件(名為:sample.c),並且進行編譯:
[user@host]$ /usr/bin/gcc sample.c -o sample.bin -I/usr/local/mysql/include -L/usr/local/mysql/lib -lmysclient -lz

-lmysclient 選項告訴連接程序連接libmysqlclient庫,而-I和-L選項告訴編譯程序在什麼位置分別查找MySQL頭文件和庫,-o選項告訴編譯程序分配給最終可執行二進制文件的名稱.如果沒有使用這些變數,GCC則使用默認值a.out

說明:我不是用linux的,恰好我這里有這樣的一個例子,所以拿出來希望對你有所幫助,更加詳細到mysql的官方網站上去看吧.
http://dev.mysql.com/doc/refman/4.1/en/apis.html

㈩ linux c怎麼使用mysql資料庫

1. 通過調用mysql_library_init(),初始化MySQL庫。庫可以是mysqlclient C客戶端庫,或mysqld嵌入式伺服器庫,具體情況取決於應用程序是否與「-libmysqlclient」或「-libmysqld」標志鏈接。
2. 通過調用mysql_init()初始化連接處理程序,並通過調用mysql_real_connect()連接到伺服器。
3. 發出SQL語句並處理其結果。(在下面的討論中,詳細介紹了使用它的方法)。
4. 通過調用mysql_close(),關閉與MySQL伺服器的連接。
5. 通過調用mysql_library_end(),結束MySQL庫的使用。

熱點內容
劍靈伺服器為什麼這么卡 發布:2024-09-30 11:31:24 瀏覽:677
linux中文輸入法設置 發布:2024-09-30 11:13:34 瀏覽:802
返佣網站源碼 發布:2024-09-30 11:08:50 瀏覽:616
iphone源碼 發布:2024-09-30 11:04:04 瀏覽:827
手機安卓槍模擬游戲叫什麼 發布:2024-09-30 10:54:51 瀏覽:915
linuxrpc 發布:2024-09-30 10:53:25 瀏覽:410
決策樹演算法的實現 發布:2024-09-30 10:52:46 瀏覽:667
觀察物體腳本 發布:2024-09-30 10:52:37 瀏覽:377
王牌對王牌長視頻緩存 發布:2024-09-30 10:12:41 瀏覽:624
c語言y加加 發布:2024-09-30 10:04:11 瀏覽:77