欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

linux安裝mysql和使用c語(yǔ)言操作數(shù)據(jù)庫(kù)的方法 c語(yǔ)言連接mysql

 更新時(shí)間:2014年01月23日 16:40:21   作者:  
Linux下使用C語(yǔ)言操作數(shù)據(jù)庫(kù)的方法,我將從MySQL環(huán)境的搭建,MySQL命令的使用到使用C接口來(lái)操作MySQL等過(guò)程詳細(xì)的介紹在Linux下管理MySQL數(shù)據(jù)庫(kù)的方法

1. MySQL的安裝與配置:

在Ubuntu下安裝MySQL方法很簡(jiǎn)單,使用如下命令:

復(fù)制代碼 代碼如下:

sudo apt-get install mysql-server

安裝的過(guò)程中系統(tǒng)會(huì)提示設(shè)置root密碼,此過(guò)程可以跳過(guò),但是建議在安裝時(shí)提示設(shè)置root密碼的時(shí)候自行設(shè)置,免得后面設(shè)置麻煩。安裝結(jié)束之后,系統(tǒng)會(huì)啟動(dòng)mysql服務(wù),可以使用命令去查看來(lái)驗(yàn)證mysql服務(wù)是否已經(jīng)安裝成功:

復(fù)制代碼 代碼如下:

ps -el | grep mysql

如果mysql服務(wù)沒(méi)有正常的運(yùn)行,可以使用下面指令對(duì)mysql服務(wù)進(jìn)行重啟:

復(fù)制代碼 代碼如下:

sudo service mysql restart

喜歡使用Workbench界面的,還需要安裝Workbench:

復(fù)制代碼 代碼如下:

sudo apt-get install mysql-workbench

Workbench的啟動(dòng)使用如下命令:

復(fù)制代碼 代碼如下:

mysql-workbench --log-level=debug3 --verbose

2. MySQL命令行:

我們使用root去登錄MySQL,然后做相關(guān)的操作:

復(fù)制代碼 代碼如下:

mysql -u root -p

在此,系統(tǒng)會(huì)提示輸入密碼,只需要輸入之前設(shè)置的MySQL密碼即可,然后程序會(huì)進(jìn)入mysql命令行模式下,假設(shè)我們需要查看user信息,我們使用如下命令:

復(fù)制代碼 代碼如下:

use mysql
SELECT host, user, password FROM user;

MySQL會(huì)返回所有host,user和password等信息。其他比較復(fù)雜的操作,諸如添加數(shù)據(jù)庫(kù),添加表等和普通的數(shù)據(jù)操作命令一致,后面會(huì)以一個(gè)實(shí)例來(lái)說(shuō)明。讓我們趕快進(jìn)入Linux下C操作MySQL的實(shí)踐吧!

3. 使用C語(yǔ)言管理MySQL數(shù)據(jù)庫(kù):

首先,我們需要安裝在Linux下操作MySQL多依賴的庫(kù),安裝命令如下:

復(fù)制代碼 代碼如下:

sudo apt-get install libmysqlclient-dev

安裝了這個(gè)之后,我們編程所需要的頭文件,庫(kù)文件等就齊全了,讓我們開始C編程之旅吧!

首先,讓我們準(zhǔn)備一個(gè)我們用來(lái)折騰的空間,也就是準(zhǔn)備一個(gè)折騰專屬賬戶,一個(gè)折騰專屬數(shù)據(jù)庫(kù)和數(shù)據(jù)表等:

復(fù)制代碼 代碼如下:

#添加賬戶
GRANT ALL ON *.* TO rick@localhost IDENTIFIED BY 'secret'
\q
#使用新創(chuàng)建的rick賬戶登錄
mysql -u rick -p
#創(chuàng)建數(shù)據(jù)庫(kù)
CREATE DATABASE foo;

然后,我們使用一個(gè)sql文件插入數(shù)據(jù)表和測(cè)試數(shù)據(jù):

復(fù)制代碼 代碼如下:

--
-- 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語(yǔ)句存為create_children.sql,然后使用下列命令導(dǎo)入MySQL數(shù)據(jù)庫(kù)foo:

復(fù)制代碼 代碼如下:

mysql -u rick --password=secret foo
\. create_children.sql

好了,寫個(gè)demo進(jìn)行測(cè)試吧:

復(fù)制代碼 代碼如下:

#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頭文件來(lái)使用mysql提供的API對(duì)MySQL進(jìn)行操作。程序?qū)懞昧?,編譯過(guò)程需要加入需要的鏈接信息:

復(fù)制代碼 代碼如下:

gcc -I/usr/include/mysql demo.c -L/usr/lib/mysql -lmysqlclient -o demo

好了,程序成功編譯,運(yùn)行一下試試吧:

復(fù)制代碼 代碼如下:

./demo

#結(jié)果如下
Connection success
Inserted 1 rows

相關(guān)文章

  • C++中4種強(qiáng)制類型轉(zhuǎn)換的區(qū)別總結(jié)

    C++中4種強(qiáng)制類型轉(zhuǎn)換的區(qū)別總結(jié)

    C++風(fēng)格的類型轉(zhuǎn)換提供了4種類型轉(zhuǎn)換操作符來(lái)應(yīng)對(duì)不同場(chǎng)合的應(yīng)用。下面這篇文章主要給大家介紹了C++中4種強(qiáng)制類型轉(zhuǎn)換的區(qū)別,有需要的朋友們可以參考借鑒,下面來(lái)一起看看吧。
    2016-12-12
  • 詳解C/C++中const關(guān)鍵字的用法及其與宏常量的比較

    詳解C/C++中const關(guān)鍵字的用法及其與宏常量的比較

    簡(jiǎn)單的說(shuō)const關(guān)鍵字修飾的變量具有常屬性,也就是說(shuō)它所修飾的變量不能被修改,下文給大家介紹C/C++中const關(guān)鍵字的用法及其與宏常量的比較,需要的朋友可以參考下
    2017-07-07
  • 淺談QT打包的兩種方式

    淺談QT打包的兩種方式

    本文主要介紹了淺談QT打包的兩種方式,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • Opencv下載和導(dǎo)入Visual studio2022的實(shí)現(xiàn)步驟

    Opencv下載和導(dǎo)入Visual studio2022的實(shí)現(xiàn)步驟

    本文主要介紹了Opencv下載和導(dǎo)入Visual studio2022的實(shí)現(xiàn)步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-05-05
  • C/C++?-?從代碼到可執(zhí)行程序的過(guò)程詳解

    C/C++?-?從代碼到可執(zhí)行程序的過(guò)程詳解

    這篇文章主要介紹了C/C++?-?從代碼到可執(zhí)行程序的過(guò)程,主要有預(yù)編譯和編譯,匯編鏈接,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-01-01
  • 一篇文章詳解Qt中如何訪問(wèn)數(shù)據(jù)庫(kù)

    一篇文章詳解Qt中如何訪問(wèn)數(shù)據(jù)庫(kù)

    Qt是一個(gè)廣泛使用的跨平臺(tái)應(yīng)用程序框架,它提供了許多功能,包括數(shù)據(jù)庫(kù)訪問(wèn),這篇文章主要給大家介紹了關(guān)于Qt中如何訪問(wèn)數(shù)據(jù)庫(kù)的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-07-07
  • C++實(shí)現(xiàn)百度坐標(biāo)(BD09)及GCJ02與WGS84之間的轉(zhuǎn)換

    C++實(shí)現(xiàn)百度坐標(biāo)(BD09)及GCJ02與WGS84之間的轉(zhuǎn)換

    這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)百度坐標(biāo)(BD09)及GCJ02與WGS84之間的轉(zhuǎn)換的方法,文中的示例代碼講解詳細(xì),希望對(duì)大家有所幫助
    2023-03-03
  • C++編譯原理之求解First集合

    C++編譯原理之求解First集合

    這篇文章主要介紹的是C++/編譯原理求解First集合,本文將圍繞該話題詳細(xì)展開全文,需要的小伙伴可以參考一下
    2021-10-10
  • C++面向?qū)ο笾惡蛯?duì)象那些你不知道的細(xì)節(jié)原理詳解

    C++面向?qū)ο笾惡蛯?duì)象那些你不知道的細(xì)節(jié)原理詳解

    C++是面向?qū)ο缶幊痰?這也是C++與C語(yǔ)言的最大區(qū)別,下面這篇文章主要給大家介紹了關(guān)于C++面向?qū)ο笾惡蛯?duì)象的細(xì)節(jié)原理的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-05-05
  • C++繼承類成員訪問(wèn)權(quán)限修飾符詳解

    C++繼承類成員訪問(wèn)權(quán)限修飾符詳解

    這篇文章主要為大家介紹了C++繼承類成員訪問(wèn)權(quán)限修飾符,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2021-12-12

最新評(píng)論