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.mzph.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…