文档章节

Centos上用c语言连接mysql

丿咖啡灬微凉
 丿咖啡灬微凉
发布于 2017/04/17 23:56
字数 719
阅读 4
收藏 0

本文转自: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个步骤中, 带*号的是我一开始忽略但又很容易忘记的必不可少的步骤. 如果运行不起来, 不妨多留意一下带*号的那几步 ]]]

本文转载自:http://blog.csdn.net/hjf161105/article/details/67644921

下一篇: MySql--约束
丿咖啡灬微凉
粉丝 1
博文 70
码字总数 0
作品 0
私信 提问
centos7.2安装mysql5.7.13

博主QQ:819594300 博客地址:http://zpf666.blog.51cto.com/ 有什么疑问的朋友可以联系博主,博主会帮你们解答,谢谢支持! 另外本博文内使用的全部软件和文件,博友如有需要可以去我百度云...

南北二斗
2017/05/27
0
0
(困扰很久的问题)用在windows操作系统上用Navicat远程连接CentOS中的Mysql,连接不上;

1、搭建的环境: 宿主机操作系统:Windows8.1 虚拟机版本:Vmvaer10.0 虚拟机内操作Linux版本:CentOS-6.5-x86_64 数据库版本(在CentOS中安装):MySQL-5.6.16-1.el6.x84_64 Navicat版本:Pre...

Constantly
2016/07/28
1K
13
解决centos的mysql服务3306端口无法远程连接10038问题

之前一期说过在centos下安装宝塔控制面板,当登陆进去新建了数据库,然后在windows使用navicat for mysql 远程连接数据库一直失败,没有解决就先用阿里的RDS先用着,直到近期找到了方法。 BB...

皇冠小丑
2018/12/09
0
0
django-pyodbc,安装成功后为什么会缺少三个基类?:BaseDatabaseWrapper等

这几天自己研究django框架,在CentOS上架设成功了,连MySql也没问题,突发奇想将公司已有业务引入django,这样就需要从django直接连接window上的sqlserver,于是FreeTDS、unixODBC、pyodbc全...

liufirefly
2012/05/17
981
0
mysql5.7:mysql安装和基于SSL加密的主从复制(详细剖析)

小生博客:http://xsboke.blog.51cto.com 小生 Q Q:1770058260 -------谢谢您的参考,如有疑问,欢迎交流 目录: --------mysql-5.7.13简介及安装 --------配置mysql-5.7.13的ssl加密传输 ...

小生博客
2017/05/07
0
0

没有更多内容

加载失败,请刷新页面

加载更多

数据库

数据库架构 数据库架构可以分为存储文件系统和程序实例两大块,而程序实例根据不同的功能又可以分为如下小模块。 1550644570798 索引模块 常见的问题有: 为什么要使用索引 什么样的信息能成...

一只小青蛙
今天
5
0
PHP常用经典算法实现

<? //-------------------- // 基本数据结构算法 //-------------------- //二分查找(数组里查找某个元素) function bin_sch($array, $low, $high, $k){ if ( $low <= $high){ $mid = int......

半缘修道半缘君丶
昨天
5
0
GIL 已经被杀死了么?

本文原创并首发于公众号【Python猫】,未经授权,请勿转载。 原文地址:https://mp.weixin.qq.com/s/8KvQemz0SWq2hw-2aBPv2Q 花下猫语: Python 中最广为人诟病的一点,大概就是它的 GIL 了。...

豌豆花下猫
昨天
5
0
git commit message form

commit message一般包括3部分:Header、Body、Footer。 <type>(<scope>):<subject>blank line<body>blank line<footer> header是必需的,body、footer可以省略。 header中type、subject......

ninjaFrog
昨天
5
0
聊聊Elasticsearch的CircuitBreakerService

序 本文主要研究一下Elasticsearch的CircuitBreakerService CircuitBreakerService elasticsearch-7.0.1/server/src/main/java/org/elasticsearch/indices/breaker/CircuitBreakerService.ja......

go4it
昨天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部