使用apt-get来进行MYSQL数据库的安装,安装好以后就可以使用数据库了。

命令行键入mysql即可进入(因为数据库初始化的没有密码的);当然为了安全,你最好还是创建一个用户和密码。

当你创建过用户喝密码后再想登陆数据库就需要输入密码了,命令行格式如下

mysql -uUSERNAME -p123123

就会进入相应用户名下的数据库中了。

show databases;

可以查看用户下面所有的数据库名字.

use db_name;

选择使用哪个数据库

show tables;

查看数据库下面所有的表

当你想用代码来实现数据库的连接查询等操作时,就得参考下面的demo了

#include <stdio.h>
#include </usr/include/mysql/mysql.h>
#include <string.h>
#define IP "127.0.0.1"
#define PORT ""
#define USER "root"
#define PASSWD "123456"
int main(){
MYSQL *coon;
MYSQL_RES *mysql_res;
MYSQL_ROW *mysql_row;
coon = mysql_init(NULL);
if (!mysql_real_connect(coon, IP, "root", "", "test_db", , NULL, )){
printf("connect fail.....");
}
else{
printf("connect successful。。。");
mysql_set_character_set(coon, "utf-8");
mysql_autocommit(coon,);
char selectQuery[] ="select str from test_table where id =1";
int iResault = mysql_real_query(coon, selectQuery, strlen(selectQuery));
int t=;
if (iResault)
{
printf("select fail。。。。");
mysql_close(coon);
return ;
}
else{
mysql_res = mysql_store_result(coon);
if (!mysql_res)
{
printf("mysql_store_result(coon) fail....");
mysql_close(coon);
return ;
}
else{
while (mysql_row=mysql_fetch_row(mysql_res))
{
//for (;t<mysql_num_fields(mysql_res);t++)
//{
printf("%s\n", mysql_row[]);
//}
}
} } }
mysql_free_result(mysql_res);
mysql_close(coon);
return ;
}

如果你不知道musql.h在什么地方,可以使用linux命令查找。例子中从根目录中开始找。

find / -name mysql.h

当你编写好代码后,在gcc编译的时候如要加上额外的客户端动态链接库,否则会出现mysqlAPI函数找不到或未定义API函数接口。

gcc -o target target.c -L/PATH -lmysqlclient

PATH是mysqlclient动态链接库所在的路径。不知道在何处就使用命令查找

find / -name libmysqlclient.so

编译就会成功。

注意一点:动态链接库中lib 和.so是系统自动添加的,所以哭的名字要去掉这些字符。客户端链接库打印出来看到的是libmysqlclient.so

2017-07-25 14:03:02

为了编译方便最好写一个简单的Makefile,我已写好最简单不过了,代码如下:

myServer:myServer.o
gcc -o myServer myServer.o -L/usr/lib/x86_64-linux-gnu/ -lmysqlclient
myServer.o:myServer.c
gcc -c myServer.c
.PHONY:clean
clean:
-rm myServer myServer.o

也可以写成如下格式:

Object=myServer.o
cc=gcc
myServer:$(Object)
cc -o myServer $(Object) -L/usr/lib/x86_64-linux-gnu/ -lmysqlclient
myServer.o:myServer.c
cc -c myServer.c
.PHONY:clean
clean:
-rm myServer $(Object)

具体请细读和我一起写Makrfile

编写好代码后要进行调试,可以使用GDB调试,这就需要在系统中安装GCC编译器,同理使用apt-get install gcc命令安装

安装好后再使用gcc 编译的时候 记得加上-g参数。

gcc -g -o target target.c -LPATH -lmysqlclient

然后使用

gdb target

进入调试阶段

通过查看linux手册可以发现GDB的参数设置如下图所示

MySQL数据库相关开发入门的更多相关文章

  1. MySQL数据库应用 从入门到精通 学习笔记

    以下内容是学习<MySQL数据库应用 从入门到精通>过程中总结的一些内容提要,供以后自己复现使用. 一:数据库查看所有数据库: SHOW DATABASES创建数据库: CREATE DA ...

  2. mysql数据库相关流程图/原理图

    mysql数据库相关流程图/原理图 1.mysql主从复制原理图 mysql主从复制原理是大厂后端的高频面试题,了解mysql主从复制原理非常有必要. 主从复制原理,简言之,就三步曲,如下: 主数据库 ...

  3. mysql数据库相关知识

    什么是数据库?                数据库(Database)是按照数据结构来组织.存储和管理数据的建立在计算机存储设备上的仓库.(来自:百度) 什么是sql? 结构化查询语言(Struct ...

  4. MySQL数据库常用操作入门

    一.MySQL MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle旗下产品.在WEB应用方面,MySQL是最好的RDBMS应用软件.MySQL体积小.速度快.总 ...

  5. MYSQL数据库相关知识合集

    1  MYSQL取得某一范围随机数: 关键词:RAND() [产生0~1之间的随机数] mysql> SELECT RAND( ), RAND( ), RAND( ); +----------- ...

  6. 操作MySQL数据库相关代码

    注意事项: 1.导入驱动包,如我导的是mysql-connector-java-5.1.26-bin.jar 2.修改下面代码中的用户名和密码 3.其中URL为"jdbc:mysql://数 ...

  7. 随笔编号-06 MYSQL数据库相关知识合集

    1  MYSQL取得某一范围随机数: 关键词:RAND() [产生0~1之间的随机数] mysql> SELECT RAND( ), RAND( ), RAND( ); +----------- ...

  8. django配置-mysql数据库相关配置

    Django3版本之前的配置 1. Django默认配置的数据库是sqlite 2. 使用mysql数据库需要下载的包 pip3 install PyMySQL 3. Django配置PyMySQL ...

  9. MySQL数据库相关资料

    python 全栈开发,Day60(MySQL的前戏,数据库概述,MySQL安装和基本管理,初识MySQL语句) python 全栈开发,Day61(库的操作,表的操作,数据类型,数据类型(2),完整 ...

随机推荐

  1. MAC上使用Enterprise Architecture,附带安装步骤及破解链接

    绪论 网上找了半天这个主题也没有详细的步骤的昂,所以自己来造轮子了. 还有,百度搜EA破解版不靠谱,大搜狗更给力哦! 一.背景 穷逼只有一台存储空间不大MACAir,分给虚拟机Virtual Box的 ...

  2. Windows Azure Virtual Machine (35) Azure VM通过Linked DB,执行SQL Job

    <Windows Azure Platform 系列文章目录> 今天遇到一个Case,客户在使用Azure Automation,执行Azure SQL Database 存储过程的时候, ...

  3. Could not write to output file 'c:\Windows\Microsoft.NET ASP.NET Files\xx' -- 'Access is denied

    网上有IIS7的解决方法,是给"C:\Windows\Temp"文件夹加上添加用户IIS_IUSRS的完全控制权限. 但我这个老机器是IIS6的,没有IIS_IUSERS用户,只能 ...

  4. Tomcat实战-调优方案

    Tomcat的默认配置,性能并不是最优的,可以通过优化tomcat以此来提高网站的并发能力.提高Tomcat的性能可以分为两个方向. 服务器资源 服务器所能提供CPU.内存.硬盘的性能对处理能力有决定 ...

  5. ALGO-115_蓝桥杯_算法训练_和为T(枚举)

    问题描述 从一个大小为n的整数集中选取一些元素,使得它们的和等于给定的值T.每个元素限选一次,不能一个都不选. 输入格式 第一行一个正整数n,表示整数集内元素的个数. 第二行n个整数,用空格隔开. 第 ...

  6. 【java】之常用四大线程池用法以及ThreadPoolExecutor详解

    为什么用线程池? 1.创建/销毁线程伴随着系统开销,过于频繁的创建/销毁线程,会很大程度上影响处-理效率2.线程并发数量过多,抢占系统资源从而导致阻塞3.对线程进行一些简单的管理 在Java中,线程池 ...

  7. Socket调用Close后如何终止套接口的问题

    setsockopt 设置 SO_LINGER 选项 此选项指定函数close对面向连接的协议如何操作(如TCP).内核缺省close操作是立即返回,如果有数据残留在套接口缓冲区中则系统将试着将这些数 ...

  8. JS属性描述符之Object.defineProperty()定义对象属性特性

    一.Object.defineProperty的作用 用来给对象新增属性,和修改对象中的属性. 二.JS对象中的描述符 js对象中两种属性描述符:数据描述符和存取描述符(访问描述符). 注意事项: 1 ...

  9. Redis的5中数据类型

    Radis的作用相信既然然就就知道她的作用,但是对于刚开始对radis学习的初学者来说,理解起来比较费劲.这里就从开始一步步认识radis 首先要知道radis是存在内存中的数据,所以读取速度回更改, ...

  10. linux一些基本知识

    一.linux i386是32位的,amd64是64位(一般情况不限intel或者amd)       server是服务器版,desktop是桌面版 Desktop是社区开源版,拥有一些新功能新软件 ...