linux安裝mysql和使用c語言操作數(shù)據(jù)庫的方法 c語言連接mysql
1. MySQL的安裝與配置:
在Ubuntu下安裝MySQL方法很簡單,使用如下命令:
sudo apt-get install mysql-server
安裝的過程中系統(tǒng)會提示設(shè)置root密碼,此過程可以跳過,但是建議在安裝時提示設(shè)置root密碼的時候自行設(shè)置,免得后面設(shè)置麻煩。安裝結(jié)束之后,系統(tǒng)會啟動mysql服務(wù),可以使用命令去查看來驗證mysql服務(wù)是否已經(jīng)安裝成功:
ps -el | grep mysql
如果mysql服務(wù)沒有正常的運行,可以使用下面指令對mysql服務(wù)進(jìn)行重啟:
sudo service mysql restart
喜歡使用Workbench界面的,還需要安裝Workbench:
sudo apt-get install mysql-workbench
Workbench的啟動使用如下命令:
mysql-workbench --log-level=debug3 --verbose
2. MySQL命令行:
我們使用root去登錄MySQL,然后做相關(guān)的操作:
mysql -u root -p
在此,系統(tǒng)會提示輸入密碼,只需要輸入之前設(shè)置的MySQL密碼即可,然后程序會進(jìn)入mysql命令行模式下,假設(shè)我們需要查看user信息,我們使用如下命令:
use mysql
SELECT host, user, password FROM user;
MySQL會返回所有host,user和password等信息。其他比較復(fù)雜的操作,諸如添加數(shù)據(jù)庫,添加表等和普通的數(shù)據(jù)操作命令一致,后面會以一個實例來說明。讓我們趕快進(jìn)入Linux下C操作MySQL的實踐吧!
3. 使用C語言管理MySQL數(shù)據(jù)庫:
首先,我們需要安裝在Linux下操作MySQL多依賴的庫,安裝命令如下:
sudo apt-get install libmysqlclient-dev
安裝了這個之后,我們編程所需要的頭文件,庫文件等就齊全了,讓我們開始C編程之旅吧!
首先,讓我們準(zhǔn)備一個我們用來折騰的空間,也就是準(zhǔn)備一個折騰專屬賬戶,一個折騰專屬數(shù)據(jù)庫和數(shù)據(jù)表等:
#添加賬戶
GRANT ALL ON *.* TO rick@localhost IDENTIFIED BY 'secret'
\q
#使用新創(chuàng)建的rick賬戶登錄
mysql -u rick -p
#創(chuàng)建數(shù)據(jù)庫
CREATE DATABASE foo;
然后,我們使用一個sql文件插入數(shù)據(jù)表和測試數(shù)據(jù):
--
-- Create the table children
--
CREATE TABLE children (
childno int(11) NOT NULL auto_increment,
fname varchar(30),
age int(11),
PRIMARY KEY (childno)
);
--
-- Populate the table 'children'
--
INSERT INTO children(childno, fname, age) VALUES (1, 'Jenny', 21);
INSERT INTO children(childno, fname, age) VALUES (2, 'Andrew', 17);
INSERT INTO children(childno, fname, age) VALUES (3, 'Gavin', 8);
INSERT INTO children(childno, fname, age) VALUES (4, 'Duncan', 6);
INSERT INTO children(childno, fname, age) VALUES (5, 'Emma', 4);
INSERT INTO children(childno, fname, age) VALUES (6, 'Alex', 15);
INSERT INTO children(childno, fname, age) VALUES (7, 'Adrian', 9);
將上述sql語句存為create_children.sql,然后使用下列命令導(dǎo)入MySQL數(shù)據(jù)庫foo:
mysql -u rick --password=secret foo
\. create_children.sql
好了,寫個demo進(jìn)行測試吧:
#include <stdlib.h>
#include <stdio.h>
#include "mysql.h"
int main(int argc, char *argv[]) {
MYSQL my_connection;
int res;
mysql_init(&my_connection);
if (mysql_real_connect(&my_connection, "localhost",
"rick", "secret", "foo", 0, NULL, 0)) {
printf("Connection success\n");
res = mysql_query(&my_connection, "INSERT INTO children(fname, age) VALUES('Ann', 3)");
if (!res) {
printf("Inserted %lu rows\n",
(unsigned long)mysql_affected_rows(&my_connection));
} else {
fprintf(stderr, "Insert error %d: %s\n", mysql_errno(&my_connection), mysql_error(&my_connection));
}
mysql_close(&my_connection);
} else {
fprintf(stderr, "Connection failed\n");
if (mysql_error(&my_connection)) {
fprintf(stderr, "Connection error %d: %s\n", mysql_errno(&my_connection), mysql_error(&my_connection));
}
}
return EXIT_SUCCESS;
}
將上述代碼保存為demo.c。上述代碼中,我們需要包含mysql.h頭文件來使用mysql提供的API對MySQL進(jìn)行操作。程序?qū)懞昧?,編譯過程需要加入需要的鏈接信息:
gcc -I/usr/include/mysql demo.c -L/usr/lib/mysql -lmysqlclient -o demo
好了,程序成功編譯,運行一下試試吧:
./demo
#結(jié)果如下
Connection success
Inserted 1 rows
上一篇:C/C++判斷傳入的UTC時間是否當(dāng)天的實現(xiàn)方法
欄 目:C語言
本文標(biāo)題:linux安裝mysql和使用c語言操作數(shù)據(jù)庫的方法 c語言連接mysql
本文地址:http://mengdiqiu.com.cn/a1/Cyuyan/3818.html
您可能感興趣的文章
- 01-10深入解析Linux下\r\n的問題
- 01-10Linux線程管理必備:解析互斥量與條件變量的詳解
- 01-10Linux C 獲取進(jìn)程退出值的實現(xiàn)代碼
- 01-10解析Linux下的時間函數(shù):設(shè)置以及獲取時間的方法
- 01-10深入探討linux下進(jìn)程的最大線程數(shù)、進(jìn)程最大數(shù)、進(jìn)程打開的文
- 01-10基于linux下獲取時間函數(shù)的詳解
- 01-10linux c 查找使用庫的cflags與libs的方法詳解
- 01-10深入探討Linux靜態(tài)庫與動態(tài)庫的詳解(一看就懂)
- 01-10Linux下semop等待信號時出現(xiàn)Interrupted System Call錯誤(EINTR)解決方法
- 01-10linux c 獲取本機(jī)公網(wǎng)IP的實現(xiàn)方法


閱讀排行
本欄相關(guān)
- 04-02c語言函數(shù)調(diào)用后清空內(nèi)存 c語言調(diào)用
- 04-02func函數(shù)+在C語言 func函數(shù)在c語言中
- 04-02c語言的正則匹配函數(shù) c語言正則表達(dá)
- 04-02c語言用函數(shù)寫分段 用c語言表示分段
- 04-02c語言中對數(shù)函數(shù)的表達(dá)式 c語言中對
- 04-02c語言編寫函數(shù)冒泡排序 c語言冒泡排
- 04-02c語言沒有round函數(shù) round c語言
- 04-02c語言分段函數(shù)怎么求 用c語言求分段
- 04-02C語言中怎么打出三角函數(shù) c語言中怎
- 04-02c語言調(diào)用函數(shù)求fibo C語言調(diào)用函數(shù)求
隨機(jī)閱讀
- 01-11ajax實現(xiàn)頁面的局部加載
- 08-05織夢dedecms什么時候用欄目交叉功能?
- 08-05DEDE織夢data目錄下的sessions文件夾有什
- 01-11Mac OSX 打開原生自帶讀寫NTFS功能(圖文
- 01-10SublimeText編譯C開發(fā)環(huán)境設(shè)置
- 01-10使用C語言求解撲克牌的順子及n個骰子
- 01-10delphi制作wav文件的方法
- 04-02jquery與jsp,用jquery
- 08-05dedecms(織夢)副欄目數(shù)量限制代碼修改
- 01-10C#中split用法實例總結(jié)