linux安裝mysql和使用c語言操作數據庫的方法 c語言連接mysql

http://www.jb51.net/article/46139.htm

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


本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/384171.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/384171.shtml
英文地址,請注明出處:http://en.pswp.cn/news/384171.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

常量變量以及循環

常量 1.三目運算詞 三字母詞表達字符???([??)]??<{??>} 2.循環 1).數組元素以及變量在內存中的分配順序 2)goto語句應用 //電腦關機程序 #include<stdio.h> #include <stdlib.h> #include <string.h> #include <windows.h> int ma…

Dungeon Master——BFS

【題目描述】 You are trapped in a 3D dungeon and need to find the quickest way out! The dungeon is composed of unit cubes which may or may not be filled with rock. It takes one minute to move one unit north, south, east, west, up or down. You cannot move …

Linux 環境 C語言 操作MySql 的接口范例

http://www.cnblogs.com/wunaozai/p/3876134.html 接上一小節&#xff0c;本來是計劃這一節用來講數據庫的增刪改查&#xff0c;但是在實現的過程中&#xff0c;出現了一點小問題&#xff0c;也不是技術的問題&#xff0c;就是在字符界面上比較不好操作。比如要注冊一個帳號&a…

二進制邏輯運算符有關練習題

//1.寫一個函數返回參數二進制中 1 的個數 #include<stdio.h> int div 0; //除數 int rem 0; //余數 int count 0; //計1 int count_one_bits(unsigned int div) {int con 0; //商while (div > 1){con div / 2;rem div % 2;div con;if (1 rem){count;}}…

Catch That Cow——BFS

【題目描述】 Farmer John has been informed of the location of a fugitive cow and wants to catch her immediately. He starts at a point N (0 ≤ N ≤ 100,000) on a number line and the cow is at a point K (0 ≤ K ≤ 100,000) on the same number line. Farmer Jo…

利用mysql提供的c語言接口操作數據庫

http://blog.csdn.net/bladeandmaster88/article/details/52980872 //1.工程要在c/c->常規->附加包含目錄添加mysql.h的路徑D:\mysql5.5\include //2.工程要在鏈接器->常規->附加庫目錄添加libmysql.lib的路徑D:\mysql5.5\lib #include <WinSock2.h>/…

數組相關運算

數組的初始化 數組及指針在內存中的存儲 一維數組在內存中的存儲 有關數組的運算 //一維數組 int a[] {1,2,3,4}; printf("%d\n",sizeof(a));//16這里的a表示的是整個數組,計算出的是整個數組的大小,單位為byte printf("%d\n",sizeof(a 0));/*a沒有單獨…

Find The Multiple——簡單搜索+大膽嘗試

【題目描述】 Given a positive integer n, write a program to find out a nonzero multiple m of n whose decimal representation contains only the digits 0 and 1. You may assume that n is not greater than 200 and there is a corresponding m containing no more t…

C語言操作MYSQL小例子

http://blog.csdn.net/small_qch/article/details/8180678 初學使用用C語言操作MYSQL&#xff0c;寫了個小例子&#xff0c;帖上來獻丟人一下&#xff0c;呵呵。 程序很簡單&#xff0c;先連接數據庫&#xff0c;然后向class1表中插入一條數據&#xff0c;最后獲取并輸出整個cl…

Find a way——BFS

【題目描述】 Pass a year learning in Hangzhou, yifenfei arrival hometown Ningbo at finally. Leave Ningbo one year, yifenfei have many people to meet. Especially a good friend Merceki. Yifenfei’s home is at the countryside, but Merceki’s home is in the ce…

用C語言操作MySQL數據庫

http://blog.chinaunix.net/uid-26743670-id-3479887.html 參考MYSQL的幫助文檔整理 這里歸納了C API可使用的函數&#xff0c;并在下一節詳細介紹了它們。請參見25.2.3節&#xff0c;“C API函數描述”。 函數 描述 mysql_affected_rows() 返回上次UPDATE、DELETE或INSERT查…

三字棋

整個游戲可以分為以下幾個環節 1.打印一個玩游戲的菜單 2.玩游戲 (1)玩家走一步 (2)電腦走一步 每走一步對結果進行顯示,其中游戲的結果可分為玩家贏,電腦贏,以及平局 代碼顯示如下 game.c #define _CRT_SECURE_NO_WARNINGS 1 #include<stdlib.h> #include<stdio.h&…

gets fgets 區別

http://www.cnblogs.com/aexin/p/3908003.html 1. gets與fgets gets函數原型&#xff1a;char*gets(char*buffer);//讀取字符到數組&#xff1a;gets(str);str為數組名。 gets函數功能&#xff1a;從鍵盤上輸入字符&#xff0c;直至接受到換行符或EOF時停止&#xff0c;并將讀取…

Fliptile——搜索+二進制優化

【題目描述】 Farmer John knows that an intellectually satisfied cow is a happy cow who will give more milk. He has arranged a brainy activity for cows in which they manipulate an M N grid (1 ≤ M ≤ 15; 1 ≤ N ≤ 15) of square tiles, each of which is col…

掃雷

1.將掃雷界面看成一個二維數組,先對界面進行打印 2.置雷 3.排雷 4.對每次的結果進行游戲輸出 5.提醒用戶游戲輸贏 game.c #define _CRT_SECURE_NO_WARNINGS 1 #include"game.h" //初始化 void init_board(char mine[ROWS][COLS], int rows, int cols, char set) {in…

C相關練習題

1.調整數組使奇數全部都位于偶數前面。 輸入一個整數數組&#xff0c;實現一個函數&#xff0c;來調整該數組中數字的順序使得數組中所有的奇數位于數組的前半部分&#xff0c;所有偶數位于數組的后半部分。 #include<stdio.h> void range(int arr[], int sz) {int left…

【C語言】單鏈表的所有操作的實現(包括PopBack、PushBack、PopFront、PushFront、Insert)

http://blog.csdn.net/hanjing_1995/article/details/51539563 [cpp] view plaincopy #define _CRT_SECURE_NO_WARNINGS 1 #include<iostream> using namespace std; //單鏈表的實現 #include<assert.h> typedef int DataType; typedef…

Shuffle'm Up——簡單模擬

【題目描述】 A common pastime for poker players at a poker table is to shuffle stacks of chips. Shuffling chips is performed by starting with two stacks of poker chips, S1 and S2, each stack containing C chips. Each stack may contain chips of several diff…

C++ explicit關鍵字詳解

http://www.cnblogs.com/ymy124/p/3632634.html 首先, C中的explicit關鍵字只能用于修飾只有一個參數的類構造函數, 它的作用是表明該構造函數是顯示的, 而非隱式的, 跟它相對應的另一個關鍵字是implicit, 意思是隱藏的,類構造函數默認情況下即聲明為implicit(隱式). 那么顯示聲…

Fire!——兩個BFS

【題目描述】 【題目分析】 看到題目后很清楚是兩個BFS&#xff0c;可是我覺得對于火的BFS可以轉換成判斷&#xff0c;我的做法是將火的位置全部記錄下來&#xff0c;然后判斷某個位置距離每個火的步數是否小于當前步數&#xff0c;可是錯了&#xff0c;還不清楚為什么&#x…