您的位置:首页 > 运维架构 > Linux

Centos上用c语言连接mysql

2017-04-17 00:00 183 查看
本文转自:http://www.ithao123.cn/content-42508.html
我的环境为Centos 6.4, mysql版本是5.1.17
1) 安装mysql:
yum install mysql

*2)安装mysql-devel:
yum install mysql-devel

3)进入root用户:
su root

*4)增加/var/lib/mysql/mysql.sock的一个软连接到/tmp/mysql.sock, 因为mysql连接的api默认查找的是/tmp目录下面的mysql.sock
ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock

5)启动mysqld服务
service mysqld start

6)系统的环境已经配置好了, 现在进入数据库. 因为是第一次进入, 所以root用户的密码为空. 所以输入下面的命令即可进入mysql
mysql -u root

7)为root用户设一个密码, 密码为0126 步骤如下
use mysql;
UPDATE user SET password = password('0126') WHERE user='root@localhost ';

8)在数据库test上面创建一个children的表:
-- 脚本名称:sql.sql
CREATE TABLE children(
no int(11) NOT NULL PRIMARY KEY auto_increment,
name varchar(30),
age int(11)
);

INSERT INTO children(age,name) VALUES (22,'aa');
INSERT INTO children(age,name) VALUES (12,'bb');
INSERT INTO children(age,name) VALUES (13,'cc');
INSERT INTO children(age,name) VALUES (24,'dd');
INSERT INTO children(age,name) VALUES (25,'ee');
INSERT INTO children(age,name) VALUES (24,'ff');
INSERT INTO children(age,name) VALUES (26,'gg');
INSERT INTO children(age,name) VALUES (27,'hh');

SELECT * FROM children;
[[[ ps: 运行脚本前, 要输入use test 来选中test数据库, 然后输入 . sql.sql 运行脚本就行了 ]]]

9)连接数据库的c程序源代码
///////////////////////////mysql1.c
#include <stdio.h>
#include "mysql.h" //是" "而不是< >
int main()
{
MYSQL sql;

mysql_init(&sql); //初始化MYSQL结构体
if (&sql==NULL)
{
printf("init errorn");
return 1;
}
//连接失败就打印具体的错误信息
//用户为root@localhost , 密码是0126, 数据库是test
if (NULL==mysql_real_connect(&sql,"localhost","root","0126","test",0,NULL,0))
{
printf("connect errorn");
printf("error:%d: %sn",mysql_errno(&sql),mysql_error(&sql));
return 1;
}
printf("connect successn");
mysql_close(&sql);
return 0;
}

10)直接输入gcc mysql.c 是编译不了上面这个程序的, 我们还需要:
a)从 http://dev.mysql.com/downloads/connector/c/ 下载连接mysql的库, 建议选tar.gz格式的, 因为rpm的老是报冲突, 安装不了
b)把下载到的文件解压出来
c)把bin文件夹所有的文件复制到/bin目录下
d)把include文件夹所有的内容复制到/usr/include/mysql/里面
e)把lib文件夹所有的内容复制到/usr/lib/mysql里面
[[[ ps: i)mysql文件夹不存在就自己新建行了 ii)复制文件夹的命令 cp -r dir1 dir2 ]]]

*11)一个必不可少的小细节
vi /etc/ld.so.conf
在最后增加一行 /usr/local/mysql/lib/mysql

12)终于可以编译mysql.c了......在shell里面输入
gcc -I/usr/include/mysql -L/usr/lib/mysql -lmysqlclient mysql1.c
./a.out
运行结果如下,没有错误信息了, 运行了一下, 证明已经链接数据库成功了!!:



[[[ ps: 上面12个步骤中, 带*号的是我一开始忽略但又很容易忘记的必不可少的步骤. 如果运行不起来, 不妨多留意一下带*号的那几步 ]]]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: