linux安裝mysql和使用c語言操作資料庫的方法 c語言串連mysql_C 語言

來源:互聯網
上載者:User

1. MySQL的安裝與配置:

在Ubuntu下安裝MySQL方法很簡單,使用如下命令:

複製代碼 代碼如下:

sudo apt-get install mysql-server

安裝的過程中系統會提示設定root密碼,此過程可以跳過,但是建議在安裝時提示設定root密碼的時候自行設定,免得後面設定麻煩。安裝結束之後,系統會啟動mysql服務,可以使用命令去查看來驗證mysql服務是否已經安裝成功:

複製代碼 代碼如下:

ps -el | grep mysql

如果mysql服務沒有正常的運行,可以使用下面指令對mysql服務進行重啟:

複製代碼 代碼如下:

sudo service mysql restart

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

複製代碼 代碼如下:

sudo apt-get install mysql-workbench

Workbench的啟動使用如下命令:

複製代碼 代碼如下:

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

2. MySQL命令列:

我們使用root去登入MySQL,然後做相關的操作:

複製代碼 代碼如下:

mysql -u root -p

在此,系統會提示輸入密碼,只需要輸入之前設定的MySQL密碼即可,然後程式會進入mysql命令列模式下,假設我們需要查看user資訊,我們使用如下命令:

複製代碼 代碼如下:

use mysql
SELECT host, user, password FROM user;

MySQL會返回所有host,user和password等資訊。其他比較複雜的操作,諸如添加資料庫,添加表等和普通的資料操作命令一致,後面會以一個執行個體來說明。讓我們趕快進入Linux下C操作MySQL的實踐吧!

3. 使用C語言管理MySQL資料庫:

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

複製代碼 代碼如下:

sudo apt-get install libmysqlclient-dev

安裝了這個之後,我們編程所需要的標頭檔,庫檔案等就齊全了,讓我們開始C編程之旅吧!

首先,讓我們準備一個我們用來折騰的空間,也就是準備一個折騰專屬賬戶,一個折騰專屬資料庫和資料表等:

複製代碼 代碼如下:

#添加賬戶
GRANT ALL ON *.* TO rick@localhost IDENTIFIED BY 'secret'
\q
#使用新建立的rick賬戶登入
mysql -u rick -p
#建立資料庫
CREATE DATABASE foo;

然後,我們使用一個sql檔案插入資料表和測試資料:

複製代碼 代碼如下:

--
-- 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,然後使用下列命令匯入MySQL資料庫foo:

複製代碼 代碼如下:

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

好了,寫個demo進行測試吧:

複製代碼 代碼如下:

#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進行操作。程式寫好了,編譯過程需要加入需要的連結資訊:

複製代碼 代碼如下:

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

好了,程式成功編譯,運行一下試試吧:

複製代碼 代碼如下:

./demo

#結果如下
Connection success
Inserted 1 rows

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.