ubuntu下mysql编程_ubuntu环境下mysql的安装配置和编程操作

关于mysql的安装和配置我就不多说了,这边有一篇流程非常详细

http://blog.csdn.net/q623702748/article/details/51724124

接下来我们怎么在程序中操作数据库呢,之前通常我都是用QT的库,

但是考虑到我们是做服务器开发的话,仅仅因为操作数据库把笨重的qt安装上绝对是不合适的!

之前听说c语言本身就带有操作mysql的接口,但是我在程序中加上#include

但是编译时报错 :

fatal error:mysql.h: No such file or directory

后来查资料才知道出现这个错误的原因是因为体系没有安装mysql开发库!

这时候我才知道c语言操作mysql需要安装一个独立的开发库!

执行下面的指令安装:

sudo apt-get install libmysqlclient-dev

编译时需要链接 -lmysqlclient

程序中调用了mysql的函数,链接动态编译:

gcc -o program program.c -L/usr/lib/mysql -lmysqlclient

makefile:

mydb:main.cpp

g++ -o mydb main.cpp -lmysqlclient -I/usr/include/mysql/ -L/usr/lib/mysql

下面是main.cpp

#include

#include

#include

#include

#include

#define MAX_COLUMN_LEN 32

int

func()

{

//分配或初始化一个mysql对象,该对象mysql_real_connect()函数链接数据库时需要使用

MYSQL *con = mysql_init(NULL);

if (NULL == con)

{

fprintf(stderr, "%s\n", mysql_error(con));

return -1;

}

//建立一个指向数据库的链接,我们需要指定链接句柄,主机名,数据库账号和用户密码

//最后四个参数是数据库名,端口号,unix套接字和客户端标记,我们需要超级用户权限来创建新的数据库

if (NULL == mysql_real_connect(con, "localhost", "root", "123456", NULL, 0, NULL, 0))

{

fprintf(stderr, "%s\n", mysql_error(con));

mysql_close(con);

return -1;

}

//此函数执行一个SQL语句,语句“CREATE DATABASE mydb”用于创建一个新的数据库mydb;

if (mysql_query(con, "CREATE DATABASE huangtaodb"))

{

fprintf(stderr, "%s\n", mysql_error(con));

mysql_close(con);

return -1;

}

//获取服务器信息和主机信息

fprintf(stdout, "%s\n", mysql_get_server_info(con));

fprintf(stdout, "%s\n", mysql_get_host_info(con));

//关闭数据库链接。

mysql_close(con);

}

int

main(int argc, char * argv[])

{

//显示MYSQL客户端版本

printf("MYSQL client version: %s\n", mysql_get_client_info());

func();

return 0;

}

下面我们创建一个用户

mysql -uroot -p123456

CREATE

USER

'bjqe'@

'localhost'

IDENTIFIED

BY

'123456';

将mazhaodb这个数据库的所有权限授予bjqe用户

GRANT ALL ON mazhaodb.* TO 'bjqe'@'localhost' IDENTIFIED BY "123456" WITH GRANT OPTION;;

通过bjqe这个用户对mazhaodb这个数据库进行操作!

#include

#include

#include

#include

#include

#define MAX_COLUMN_LEN 32

int

finish_with_error(MYSQL *con)

{

fprintf(stderr, "%s\n", mysql_error(con));

mysql_close(con);

return -1;

}

int

func()

{

MYSQL *con = mysql_init(NULL);

if(NULL == con)

{

fprintf(stderr, "%s\n", mysql_error(con));

return -1;

}

if(NULL == mysql_real_connect(con, "localhost", "bjqe", "123456", "mazhaodb", 0, NULL, 0))

{

finish_with_error(con);

}

if(mysql_query(con, "DROP TABLE IF EXISTS Phones;"))

{

finish_with_error(con);

}

if(mysql_query(con, "CREATE TABLE Phones(Id INT,Name TEXT,Price INT);"))

{

finish_with_error(con);

}

if(mysql_query(con, "INSERT INTO Phones VALUES(1, '三星GALAXY', 5199);"))

{

finish_with_error(con);

}

mysql_close(con);

return 0;

}

int

main(int argc, char * argv[])

{

//显示MYSQL客户端版本

printf("MYSQL client version: %s\n", mysql_get_client_info());

func();

return 0;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值