当前位置: 首页 > news >正文

Ubuntu下MySql和C连接的一些问题[转]

第一,安装MySql:

1、sudo apt-get intsall mysql-server
2、sudo apt-get install mysql-client
3、判断是否安装成功:
sudo netstat -tap | grep mysql
如果安装成功会出现现面的提示:
tcp 0 0 localhost.localdomain:mysql *:* LISTEN
如果没有成功,重新启动MySql:sudo /etc/init.d/mysql restart
4、直接在中断下面进入MySql:sudo mysql -u root -p
第二:安装要和C 语言连接是的MySql的库文件和头文件:
sudo apt-get install libmysqlclient15-dev
你可以看看是否安装成功,运行下面命令:
cd /usr/include/mysql 查看头文件是否有
cd /usr/lib/mysql 查看库文件是否有
第三:编写测试实例
1、创建自己的数据库
登录MySql :create database db1和create table test
2、编写C语言测试程序:
//test.c
#include <stdio.h>
#include <mysql.h>
int main(int argc, char **argv)
{
    MYSQL mysql_conn; /* Connection handle */
    MYSQL_RES *mysql_result; /* Result handle */
    MYSQL_ROW mysql_row; /* Row data */
    int f1, f2, num_row, num_col;
    if (mysql_init(&mysql_conn) != NULL)
    {
        if (mysql_real_connect(&mysql_conn, "localhost", "user",
                    "password", "db1", MYSQL_PORT, NULL, 0) != NULL)
        { 
           mysql_query(&mysql_conn,"SET NAMES 'utf8' ");//为了防止有中文读出是??
            if (mysql_query(&mysql_conn, "select * from test") == 0)
               {
                mysql_result = mysql_store_result(&mysql_conn);
                num_row = mysql_num_rows(mysql_result);
                /* Get the no. of row */
                num_col = mysql_num_fields(mysql_result);
                /* Get the no. of column */
                
                printf("row=%d, col=%d\n",num_row,num_col);
                 for (f1 = 0; f1 < num_row; f1++)
                 {
                     mysql_row = mysql_fetch_row(mysql_result);
                     for (f2 = 0; f2 < num_col; f2++)
                     {
                        /* Fetch one by one */
                         printf("[Row %d, Col %d] ==> [%s]\n", f1, f2, mysql_row[f2]);
                       }
                 }
             } else
             {
                 (void) printf("Query fails\n");
             }
         } else
         {
             (void) printf("Connection fails\n");
         }
     } else
     {
         (void) printf("Initialization fails\n");
     }
     mysql_free_result(mysql_result);
     mysql_close(&mysql_conn);
     printf("quit\n");
     return 0;
}
因为数据库里面有汉字,查了一些资料也要在连接数据源是设置字符集,但是就是不知道把这句:mysql_query(&mysql_conn,"SET NAMES 'utf8' ");
放到什么位置,程序明明已经来连接一次数据源,难道还要链接吗?
最后实在没有办法就连接两次,一次设置字符集,一次查询,谁知道成功读出汉字,可能是本人巧合,不求甚解吧?

转载于:https://www.cnblogs.com/RichardLee/archive/2012/03/31/2426397.html

相关文章:

  • java中把对象、对象bean、list集合、对象数组、Map和Set以及字符串转换成Json
  • 【转载】.Net中通过反射技术的应用----插件程序的开发入门
  • CSS导航设计示例收藏
  • Objective-C 学习资源收集
  • C语言实现#include替换文件
  • sed 基本简介
  • ubuntu ntop 安装
  • CA ARCserve Backup系列(2)—安装代理(windows篇)
  • Match全文搜索
  • Javascript--Enumerator
  • android Handler的使用(一)
  • [boost]使用boost::function和boost::bind产生的down机一例
  • HLG 1360 Leyni的国家III【并查集】
  • 钗头凤
  • CSS 教程Part7 [打印、单位表](摘录自 W3C School)
  • angular组件开发
  • ECS应用管理最佳实践
  • HashMap ConcurrentHashMap
  • mac修复ab及siege安装
  • PHP 小技巧
  • React+TypeScript入门
  • React系列之 Redux 架构模式
  • Webpack 4x 之路 ( 四 )
  • Zepto.js源码学习之二
  • 计算机在识别图像时“看到”了什么?
  • 精益 React 学习指南 (Lean React)- 1.5 React 与 DOM
  • 如何邀请好友注册您的网站(模拟百度网盘)
  • 小程序开发中的那些坑
  • (9)YOLO-Pose:使用对象关键点相似性损失增强多人姿态估计的增强版YOLO
  • (cos^2 X)的定积分,求积分 ∫sin^2(x) dx
  • (delphi11最新学习资料) Object Pascal 学习笔记---第8章第2节(共同的基类)
  • (JS基础)String 类型
  • (PyTorch)TCN和RNN/LSTM/GRU结合实现时间序列预测
  • (备忘)Java Map 遍历
  • (层次遍历)104. 二叉树的最大深度
  • (三)elasticsearch 源码之启动流程分析
  • (转) RFS+AutoItLibrary测试web对话框
  • (转)MVC3 类型“System.Web.Mvc.ModelClientValidationRule”同时存在
  • (转)微软牛津计划介绍——屌爆了的自然数据处理解决方案(人脸/语音识别,计算机视觉与语言理解)...
  • (自用)learnOpenGL学习总结-高级OpenGL-抗锯齿
  • (最完美)小米手机6X的Usb调试模式在哪里打开的流程
  • *2 echo、printf、mkdir命令的应用
  • .\OBJ\test1.axf: Error: L6230W: Ignoring --entry command. Cannot find argumen 'Reset_Handler'
  • .NET 简介:跨平台、开源、高性能的开发平台
  • .NetCore实践篇:分布式监控Zipkin持久化之殇
  • .NET大文件上传知识整理
  • /使用匿名内部类来复写Handler当中的handlerMessage()方法
  • @开发者,一文搞懂什么是 C# 计时器!
  • [ Algorithm ] N次方算法 N Square 动态规划解决
  • [2019.3.20]BZOJ4573 [Zjoi2016]大森林
  • [BZOJ 2142]礼物(扩展Lucas定理)
  • [C]整形提升(转载)
  • [C++] 统计程序耗时
  • [CF482B]Interesting Array
  • [IE6 only]关于Flash/Flex,返回数据产生流错误Error #2032的解决方式