MySQL数据库相关开发入门
使用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数据库相关开发入门的更多相关文章
- MySQL数据库应用 从入门到精通 学习笔记
以下内容是学习<MySQL数据库应用 从入门到精通>过程中总结的一些内容提要,供以后自己复现使用. 一:数据库查看所有数据库: SHOW DATABASES创建数据库: CREATE DA ...
- mysql数据库相关流程图/原理图
mysql数据库相关流程图/原理图 1.mysql主从复制原理图 mysql主从复制原理是大厂后端的高频面试题,了解mysql主从复制原理非常有必要. 主从复制原理,简言之,就三步曲,如下: 主数据库 ...
- mysql数据库相关知识
什么是数据库? 数据库(Database)是按照数据结构来组织.存储和管理数据的建立在计算机存储设备上的仓库.(来自:百度) 什么是sql? 结构化查询语言(Struct ...
- MySQL数据库常用操作入门
一.MySQL MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle旗下产品.在WEB应用方面,MySQL是最好的RDBMS应用软件.MySQL体积小.速度快.总 ...
- MYSQL数据库相关知识合集
1 MYSQL取得某一范围随机数: 关键词:RAND() [产生0~1之间的随机数] mysql> SELECT RAND( ), RAND( ), RAND( ); +----------- ...
- 操作MySQL数据库相关代码
注意事项: 1.导入驱动包,如我导的是mysql-connector-java-5.1.26-bin.jar 2.修改下面代码中的用户名和密码 3.其中URL为"jdbc:mysql://数 ...
- 随笔编号-06 MYSQL数据库相关知识合集
1 MYSQL取得某一范围随机数: 关键词:RAND() [产生0~1之间的随机数] mysql> SELECT RAND( ), RAND( ), RAND( ); +----------- ...
- django配置-mysql数据库相关配置
Django3版本之前的配置 1. Django默认配置的数据库是sqlite 2. 使用mysql数据库需要下载的包 pip3 install PyMySQL 3. Django配置PyMySQL ...
- MySQL数据库相关资料
python 全栈开发,Day60(MySQL的前戏,数据库概述,MySQL安装和基本管理,初识MySQL语句) python 全栈开发,Day61(库的操作,表的操作,数据类型,数据类型(2),完整 ...
随机推荐
- Hive HiveServer2+beeline+jdbc客户端访问操作
HiveServer 查看/home/hadoop/bigdatasoftware/apache-hive-0.13.1-bin/bin目录文件,其中有hiveserver2 启动hiveserver ...
- springboot整合shiro-登录认证和权限管理
https://blog.csdn.net/ityouknow/article/details/73836159
- sqlalchemy操作----多表关联
有二张表,一张作者表,一张书表,一个作者写多本书,一本书可以由多个作者写,与是通过新加一张关系表把他们联系起来 #!/usr/bin/env python # -*- coding: utf-8 -* ...
- x230安装黑苹果
https://forum.51nb.com/forum.php?mod=viewthread&tid=1802786&extra=page%3D1&page=1 下载 主要就 ...
- jsp页面间对象传递方法
严格的来说不能叫做JSP页面间的对象传递,实际应该是页面间对象共享的方法: 1. 通过servletcontext,也就是application对象了,但这种情况要求在同一个web应用下, ...
- 日志框架学习(log4j2+slf4j)
现在比较吊的就是这个log4j2这个日志框架了,功能强悍.slf4j是个日志框架的统一接口,方便扩展,切换框架啥的. 配置SSM+log4J2+SL4J https://blog.csdn.net/c ...
- 关于RabbitMQ分布式集群架构
RabbitMQ分布式集群架构和高可用性(HA) (一) 功能和原理 设计集群的目的 允许消费者和生产者在RabbitMQ节点崩溃的情况下继续运行 通过增加更多的节点来扩展消息通信的吞吐量 1 集群配 ...
- java设计模式-责任链
背景:要把<script>等<>html标签替换掉:把敏感词屏蔽或者替换等: 1.刚开始可能这么写: public class Main { public static voi ...
- C++之单例类模板
单例类模板:一个类只能有一个对象,比如超市收银系统中清点物品的仪器只有一个 设计思路: 1.构造函数,拷贝构造函数必须设计为private,防止自己生成新的对象 2.且类的指针要设计为static类型 ...
- Java学习——使用Static修饰符
程序功能:通过两个类 StaticDemo.LX4_1 说明静态变量/方法与实例变量/方法的区别. package Pack1; public class Try { public static vo ...