程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> linux裝置mysql和應用c說話操作數據庫的辦法 c說話銜接mysql

linux裝置mysql和應用c說話操作數據庫的辦法 c說話銜接mysql

編輯:關於C++

linux裝置mysql和應用c說話操作數據庫的辦法 c說話銜接mysql。本站提示廣大學習愛好者:(linux裝置mysql和應用c說話操作數據庫的辦法 c說話銜接mysql)文章只能為提供參考,不一定能成為您想要的結果。以下是linux裝置mysql和應用c說話操作數據庫的辦法 c說話銜接mysql正文


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

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved