首先保证安装:

1:安装MySQL:sudo apt-get install mysql-server mysql-client

2:安装MySQL开发包:sudo apt-get install libmysqlclient15-dev

此时需要用到的头文件会出现在/usr/include/mysql/里

C语言连接MySQL数据库

此包含两个步骤:

1. 使用函数mysql_init初始化一个连接句柄结构.

mysql_init的函数定义如下:

MYSQL * mysql_init(MYSQL *);

通常传递NULL给这个例程,他会返回一个指向新分配的连接句柄结构的指针。如果传递一个已有的结构,它将会重新初始化。这个例程在出错时返回NULL.

2. 实际进行连接

目前只是分配和初始化了一个结构,仍然需要使用mysql_real_connect来向一个连接提供参数,

mysql_real_connect的函数定义:

MYSQL* mysql_real_connect(MYSQL* connection,

const char *server_host,

const char *sql_user_name,

const char *sql_password,

const char *db_name,

unsigned int port_number,

const char *unix_socket_name,

unsigned int flags);

指针connection必须指向已经被mysql_init初始化过的结构。

注意server_host既可以是主机名,也可以是IP地址。如果连接本地,可以制定localhost来优化。

sql_user_name和sql_password的含义和它们的字面意思一样。如果登录名为NULL,则假设登录名为当前Linux用户的登录ID,如果密码为NULL,则假设密码为空。

port_number和unix_socket_name应该分别为0和NULL,除非你改变了MySQL安装的默认设置。他们将默认使用合适的值。

最后,flags参数用来对一些定义的位模式进行OR操作,使得改变使用协议的某些特性。

如果无法连接,则返回NULL。mysql_error函数可以提供有帮助的信息。

3. 使用完连接,通常在程序退出前,要调用函数mysql_close;

mysql_close的函数定义:

void mysql_close(MYSQL *connection);

将关闭连接。

连接MySQL的示例:

#include

#include

#include "mysql.h"

int main (int argc, char *argv[]) {

MYSQL *conn;

// 步骤1: 初始化连接句柄

conn = mysql_init(NULL);

if (conn == NULL) { // 如果返回NULl说明初始化失败

printf("mysql_init failed!\n");

return EXIT_FAILURE;

}

// 步骤2:实际进行连接

// 参数分别为,conn连接句柄,host是MySQL所在主机或地址,user用户名,password密码,database_name数据库名,后面的都是默认

conn = mysql_real_connect(conn, "host", "user", "password", "database_name", 0, NULL, 0);

if (conn) { // 连接成功

printf("Connection success!\n");

} else {

printf("Connection failed!\n");

}

// 步骤3: 退出前关闭连接

mysql_close(conn);

return 0;

}

编译和运行:

gcc -I/usr/include/mysql test.c -L/usr/lib/mysql -lmysqlclient -o app

错误处理

错误处理的两个函数:

// 返回错误码

unsigned int mysql_errno(MYSQL *connection);

// 返回错误详细信息

char* mysql_error(MYSQL *connection);

注意,当调用conn = mysql_real_connect(...),  时会遇到一个问题,因为它在失败时返回NULL指针,并没有提供一个错误码。但如果是将句柄作为一个变量,那么即使mysql_real_connect失败,也仍然能够处理它。

#include

#include

#include "mysql.h"

#include "errmsg.h"

#include "mysqld_error.h"

void Error(MYSQL* conn)

{

printf("Connection error %d: %s\n", mysql_errno(conn), mysql_error(conn));

}

int main (int argc, char *argv[])

{

MYSQL conn; // 是变量而不是指针

mysql_init(&conn); // 注意取地址符&

if (mysql_real_connect(&conn, "192.168.137.246", "root", "", "test", , NULL, ))

{

printf("Connection success!\n");

mysql_close(&conn);

} else

{

fprintf(stderr, "Connection failed!\n");

if (mysql_errno(&conn))

{

fprintf(stderr, "Connection error %d: %s\n", mysql_errno(&conn), mysql_error(&conn));

}

}

return EXIT_SUCCESS;

}

Linux下的C#连接Mysql数据库

今天在尝试在 Linux 系统下使用C#连接数据库,发现网上这方面的信息很少,所以就写一篇博客记录一下. Linux下这里使用的是mono. 首先是缺少Mysql.Data.dll这个库的,所以需要安 ...

Linux下C语言操作MySQL数据库

MySQL是Linux系统下广泛使用的开源免费数据库,是Linux应用程序数据存储的首选. Ubuntu下安装 […]

Linux centos 7/ubantu下: 用 C 语言连接 MySQL数据库

前言:最近用IPC.socket做ATM.聊天项目,考虑到需要用到数据库,所以总结一下centos.ubantu环境下怎么用C语言操作数据库,例如常见的增删改查等! 一.Centos环境安装mysql ...

Windows下用C语言连接Mysql注意问题

原文:Windows下用C语言连接Mysql注意问题 环境是:在VS6.0 安装Mysql后,我们需要相应的头文件以及lib文件,所以安装过程必须是完整安装.否则不会生成include文件夹哦~ 具体 ...

linux 下C语言学习路线

UNIX/Linux下C语言的学习路线.一.工具篇“公欲善其事,必先利其器”.编程是一门实践性很强的工作,在你以后的学习或工作中,你将常常会与以下工具打交道, 下面列出学习C语言编程常常用到的软件和工 ...

Unix和Linux下C语言学习指南

转自:http://www.linuxdiyf.com/viewarticle.php?id=174074 Unix和Linux下C语言学习指南 引言 尽管 C 语言问世已近 30 年,但它的魅力仍未 ...

在linux下安装并配置mysql数据库

在linux下安装并配置mysql数据库 工具/原料   MySql5.6 CentOS 方法/步骤   1 查找以前是否安装有mysql,使用下面命令: rpm -qa|grep -i mysql ...

c语言连接mysql数据库的实现方法

C语言连接mysql数据库,需要相应的头文件和lib文件,如果你安装Mysql数据库,会在安装目录下找到这些库文件,如果没有安装,也可以在网上找到 我这里也有一份网上找到的:/201205/other ...

R语言-连接MySQL数据库方法

版权声明:本文为博主原创文章,未经博主允许不得转载.   目录(?)[+]   R语言连接数据库常用的方法有2种: 1.使用R数据库接口 连接MySQL,使用RMySQL包,使用前RMySQL包要先安 ...

随机推荐

Windows 7 OpenGL配置

http://blog.csdn.net/qingyang8513/article/details/45155245

spring的对象属性相同(类型,名字)拷贝

A类: package test; /** * Created by gmq on 2015/12/4. */ public class A { private String aa; private ...

ASP.NET ZERO Core Application 学习笔记

地址:https://www.aspnetzero.com/Documents/Development-Guide-Core 1.恢复数据库 MIGRATOR CONSOLE APPLICATION ...

jdk线程的同步问题

一.银行取款引出的问题 模拟银行取钱的例子: public class ThreadDemo06 { public static void main(String[] args) { Bank ban ...

linux的学习系列 5--环境变量

在Linux中,环境变量是一个很重要的概念.环境变量可以由系统.用户.Shell以及其他程序来设定. 变量就是一个可以被赋值的字符串,赋值范围包括数字.文本.文件名.设备以及其他类型的数据. 下面的例 ...

Entity Framework 学习初级篇5--ObjectQuery查询及方法

ObjectQuery 类支持对 实体数据模型 (EDM) 执行 LINQ to Entities 和 Entity SQL 查询.ObjectQuery 还实现了一组查询生成器方法,这些方法可用于按 ...

C#中的is和as

is检查一个对象是否兼容于指定的类型,不返回Boolean值.注意is操作符永远不会抛异常.is操作符通常这样使用: if(o is Employee) { Employee e=(Employee) ...

ubuntu解压rar文件

一般通过默认安装的ubuntu是不能解压rar文件的,只有在安装了rar解压工具之后,才可以解压.其实在ubuntu下安装rar解压工具是非常简 单的,只需要两个步骤就可以迅速搞定. ubuntu 下 ...

iOS命名规范(转载)

转载地址:http://www.cnblogs.com/qiqibo/archive/2012/09/05/2671553.html 正文: • 格式化代码 ◦ 指针“*”号的位置 ▪ 如:NSStr ...

day31 锁 队列 前面课程重点总结

今日内容: 1.进程的其他方法 2.僵尸进程和孤儿进程(了解) 3.验证进程之间是空间隔离的 4.守护进程 5.进程锁 重点(又叫同步锁,互斥锁) 6.进程队列(重点)  Queue 7.生产者消费者 ...

linux下c语言调用mysql,Linux下C语言连接MySQL相关推荐

  1. jsp运行linux脚本,jsp页面调用哪个Linux的shell 脚本步骤

    当前位置:我的异常网» Linux/Unix » jsp页面调用哪个Linux的shell 脚本步骤 jsp页面调用哪个Linux的shell 脚本步骤 www.myexceptions.net  网 ...

  2. wdcp mysql密码_WDCP提示无法连接mysql及创建站点提示mysql密码不正确

    一.wdcp系统访问提示无法连接mysql 1.可能是mysql服务没启动,首先ssh登陆服务器,然后执行service mysqld restart重启mysql再访问试下,如果无法启动,先用df  ...

  3. mysql 遗失对主机的连接,MySQL远程连接丢失问题解决方法(Lost connection to MySQL server)...

    MySQL远程连接丢失问题解决方法(Lost connection to MySQL server) 最近服务器很不稳定,于是重装了mysql 和php 服务,但是接着却遇到了很头疼的麻烦. 远程连接 ...

  4. java连接MySQL几种方法_Java连接MySQL数据库三种方法

    好久没有更新博客了!今天利用周目时学习了一下数据库mysql.介绍一下数据库的三种连接方式! 开发工具:Myeclipse MySQL5.6 MySQL连接驱动:mysql-connector-jav ...

  5. jdbc mysql 存储过程查询数据_JDBC连接(MySql)数据库步骤,以及查询、插入、删除、更新等十一个处理数据库信息的功能。...

    主要内容: JDBC连接数据库步骤. 一个简单详细的查询数据的例子. 封装连接数据库,释放数据库连接方法. 实现查询,插入,删除,更新等十一个处理数据库信息的功能.(包括事务处理,批量更新等) 把十一 ...

  6. qt5.8连接mysql代码_qt5.8如何连接mysql

    qt5.8连接mysql的方法:首先编译生成mysql的驱动:然后下载"libmysql.dll"库,并将其放在Qt的bin文件夹下:最后创建连接代码文件进行测试即可. 推荐:&l ...

  7. MYSQL闪退及DBeaver连接MYSQL出现拒绝连接的解决方法

    问题描述: MYSQL闪退: DBeaver连接MYSQL失败 可能原因是MYSQL服务没有启动  解决方案: 1.使用管理者模式打开CMD 2.进入MYSQL安装目录下的bin目录,并执行mysql ...

  8. mysql跳过安全_Navicat连接MySQL数据库

    前言: 在使用Gin架构搭建博客的时候,需要设计数据库,以及连接数据库.命令端口操控效率实在是太低且不好管理,这个时候使用Navicat就能轻松高效的使用数据库了. 步骤: 下载安装Navicat,M ...

  9. asp连接mysql odbc,在ASP中连接MySQL数据库的方法,最好的通过ODBC方法

    折腾了一阵,总算把ASP和MySQL连接完成了,有感,特写此文与大家一同分享. 查了很多资料,ASP和MySQL连接目前有两种办法:一个是使用组件,比较有名是MySQLX,可惜要99美元.二就是使用M ...

  10. 连接mysql数据库_解决Navicat连接MySQL数据库报错问题

    今天在用Navicat连接另外一台主机上的MySQL时报错: Host is not allowed to connect to this MySQL server 默认安装的mysql无法远程连接是 ...

最新文章

  1. c语言中的if语句_If ... C中的其他语句解释
  2. 一只53万!波士顿动力网红机器狗开售,充电器价格1万多!
  3. C#中使用Process调取Windows中的进程(应用程序)
  4. 下载 golang.org/x 包出错不用代理的解决办法
  5. 【视频编解码:新标准 新应用】未来可期
  6. 网络流量监控分析工具 Ntopng 安装
  7. redis 一般启动几个 哨兵_Redis6.0主从、哨兵、集群搭建和原理
  8. linux errno定义
  9. linux 环境 crontab+shell+sqlplus 调用oracle 存储过程实现数据同步
  10. linux 查看emmc分区表_如何查看闪存类型?UFS与F2FS简易科普
  11. day4作业小代码练习
  12. 如何在Angular.JS中打开JSON / XML文件
  13. Python之数据分析(星期均值、星期汇总、Numpy的take与where方法、apply_along_axis函数)
  14. JavaScript学习(四十一)—字面量形式创建对象的注意事项和不足
  15. tensorflow之预测手写字的概率
  16. Java读取mapinfo格式_mapInfo文件格式详解
  17. plc比c语言还难,plc编程好学吗??
  18. 漏洞复现永恒之蓝MS-17010+修复
  19. jQuery 三级联动
  20. 光电LED玻璃屏成商显新势力 优势颠覆传统LED灯条屏

热门文章

  1. 绝世舞姬计算机弹音乐,张晓涵/戚琦《绝世舞姬》[FLAC/MP3-320K]
  2. 移动设备管理软件优劣,南京烽火星空来判别
  3. 网易跨域实现笔记以及顺便发现的XSS
  4. xw总结4:jmmntsj
  5. Linux用户、用户组的管理
  6. PAT1009 说反话 (20分)
  7. VM(虚拟机)Ubuntu打不开
  8. http 411错误
  9. Manjaro安装有道词典,启动报错解决
  10. Android常用官网,开发者社区,论坛