Ubuntu环境下实现MySQL与C连接
来源:互联网 发布:广电网络一年多少钱 编辑:程序博客网 时间:2024/05/21 11:28
Ubuntu环境下实现MySQL与C连接
软件安装
实验环境为Ubuntu14.04
- 安装MySql的客户端:
sudo apt-get install mysql-server mysql-client
- 安装开发包:
sudo apt-get install libmysqld++-dev
在安装的最后,Mysql会要求输入登录密码,直接输入就好,接下来测试安装是否成功,在终端输入:mysql -u-root -p
成功截图: - 安装编译环境:
sudo apt-get install gcc
成功截图:
创建数据库和表
在终端进入Mysql,指令:mysql -u root -p
若安装成功,则可以看到如下界面显示:
接着我们就可以在命令行创建数据库和表,具体语句可以参考《数据库系统概念》
C代码实现与mysql连接
这里给出具体代码,代码实现很简单,主要部分有注释:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<mysql/mysql.h>
MYSQL mysql; MYSQL_RES *result; MYSQL_ROW row; int create_course_table(); int insert_rows_into_course_table(); void pause(); main(int argc,char **argv){int num=0;char fu[2];mysql_init(&mysql); //根据自己数据的用户名和密码进行连接if(mysql_real_connect(&mysql,"localhost","root","199681","xxjl",3306,NULL,0)){ //打印主界面的菜单 for(;;){ printf("Sample Embedded SQL for C application\n"); printf("Please select one function to execute:\n\n"); printf("0--exit.\n"); printf("1--创建学生表 6--添加成绩记录 b--删除课程记录 h--学生课程成绩表\n"); printf("2--创建课程表 7--修改学生记录 c--删除成绩记录 j--学生成绩统计表\n"); printf("3--创建成绩表 8--修改课程记录 e--显示学生记录 k--课程成绩统计表\n"); printf("4--添加学生记录 9--修改成绩记录 f--显示课程记录 m--数据库表名\n"); printf("5--添加课程记录 a--删除学生记录 g--显示成绩记录\n"); printf("\n"); fu[0]='0'; //输入菜单编号,选择相应的函数执行 scanf("%s",fu); if (fu[0]=='0') exit(0); if (fu[0]=='2') create_course_table(); if (fu[0]=='5') insert_rows_into_course_table(); pause(); }}//若不是正确用户名和密码,则显示数据库不存在else { printf("Database not exist!\n");}mysql_close(&mysql);return 0;} //表的初始创建int create_course_table(){char yn[2];char tname[21] = "xxxxxxxxxxx";if (mysql_list_tables(&mysql, "course"))//删除表course{ printf("The course table already exists,Do you want to delete it?\n"); printf("Delete the table?(y--yes,n--no):"); scanf("%s", yn); if (yn[0] == 'y' || yn[0] == 'Y'){ if (!mysql_query(&mysql, "drop table course;")) { printf("Drop table course successfully!\n\n"); } else { printf("ERROR: drop table course \n\n"); } }}//创建表course//插入数据if (mysql_query(&mysql, "create table course (cno char(1) NOT null primary key,cname varchar(20) null ,cpno char(1) null ,ccredit int null) engine=innodb;") == 0){ printf("create table course successfully!\n\n");}else{ printf("ERROR: create table course \n\n");}if (mysql_query(&mysql, "insert into course values('1', 'C langeage', '',3),('2', 'Database System', '1',4),('3', 'Digital Processing', '2',5),('4','Data structrue', '3',2),('5', 'operating system','4',3) ;") == 0){ printf("Success to insert rows to course table!\n\n");}else{ printf("ERROR: insert rows \n\n");}return(0);} //表记录的插入int insert_rows_into_course_table(){char icno[2];char icname[20];char icpno[2];char iccredit[2];char strquery[100] = "insert into course(cno,cname,cpno,ccredit) values('";char yn[2];while (1){ //依次输入表中各项的数据 printf("Please input cno(eg:1):"); scanf("%s", icno); strcat(strquery, icno); strcat(strquery, "','"); printf("Please input cname(eg:XXXX):"); scanf("%s", icname); strcat(strquery, icname); strcat(strquery, "','"); printf("Please input cpno(eg:1):"); scanf("%s", icpno); strcat(strquery, icpno); strcat(strquery, "','"); printf("Please input iccredit(eg:2):"); scanf("%s", iccredit); strcat(strquery, iccredit); strcat(strquery, "');"); if (mysql_query(&mysql, strquery) == 0) { printf("execute successfully!\n\n"); } else { printf("ERROR: execute \n"); } printf("Insert again?(y--yes,n--no):"); scanf("%s", yn); if (yn[0] == 'y' || yn[0] == 'Y'){ continue; } else break;}if (mysql_errno(&mysql)) // 打印出错误{ fprintf(stderr, "Error: %s\n", mysql_error(&mysql));}return (0);}void pause(){char junk[80], c;printf("Press any key to continue!");c = getchar();gets(junk);}
编译并测试代码
- 编译指令:
gcc -I/usr/include/mysql text.c -L/usr/lib/mysql -lmysqlclient -o text
- 测试指令:
./text
这里的mysql为可执行文件,在Ubuntu中后缀为.sh。该文件在编译时会生成。
测试结果
在运行mysql的文件后,可以看到在命令行出现如下界面:
至此,mysql就能够与C连接起来了,我们可以在命令行界面对数据库中的表进行修改;
修改之后我们可以在终端检查是否已经成功修改表。
0 0
- Ubuntu环境下实现MySQL与C连接
- linux ubuntu下C语言与数据库mysql连接
- ubuntu环境下,Java连接MySQL数据库
- c/c++使用VS2013连接MySQL与ubuntu下c链接mysql
- Ubuntu 10.04 下 C 连接mysql数据库
- ubuntu 下 用C语言连接mysql
- Ubuntu下C连接mysql数据库
- ubuntu下C++mysql编译环境设置
- ubuntu下qt与mysql环境搭建
- Ubuntu下用C语言连接MySql——实现增删改查排序
- Ubuntu下用C语言连接MySql——实现增删改查排序
- VS2010环境下 用MySQL Connector C 连接 MySql数据库
- VS2010环境下 用MySQL Connector C 连接 MySql数据库
- Mysql学习篇之---Ubuntu环境下远程连接
- linux下c与MySQL连接
- Linux下c与Mysql连接流程
- Windows下实现Qt与MySQL连接
- Ubuntu环境下Redis的安装与JAVA连接测试
- Mysql备份
- 【面试题】
- hibernate缓存学习之【二级缓存】
- 浅谈如何提高服务器并发处理能力(来自某位大牛的博客)
- 随机数解析
- Ubuntu环境下实现MySQL与C连接
- [Unity3D] Unity3D游戏开发之UGUI实现伤害数值显示
- 怎么学汇编---dosbox 环境配置,怎么用
- linux后台开发常用调试工具
- 网络后台开发面试题
- 2016最热门的编程语言与薪资
- SSDT的例子1-inlineHook的jmp验证
- 2016年收入最高的5个编程语言
- 为什么游戏引擎大多选择使用 C++ 而不是 C 开发?