zoukankan      html  css  js  c++  java
  • MySQL数据库相关开发入门

    使用apt-get来进行MYSQL数据库的安装,安装好以后就可以使用数据库了。

    命令行键入mysql即可进入(因为数据库初始化的没有密码的);当然为了安全,你最好还是创建一个用户和密码。

    当你创建过用户喝密码后再想登陆数据库就需要输入密码了,命令行格式如下

    mysql -uUSERNAME -p123123
    

    就会进入相应用户名下的数据库中了。

    show databases;
    

    可以查看用户下面所有的数据库名字.

    use db_name;
    

    选择使用哪个数据库

    show tables;
    

    查看数据库下面所有的表

    当你想用代码来实现数据库的连接查询等操作时,就得参考下面的demo了

    #include <stdio.h>
    #include </usr/include/mysql/mysql.h>
    #include <string.h>
    #define  IP "127.0.0.1"
    #define  PORT ""
    #define  USER "root"
    #define  PASSWD "123456"
    int main(){
        MYSQL *coon;
        MYSQL_RES *mysql_res;
        MYSQL_ROW *mysql_row;
        coon = mysql_init(NULL);
        if (!mysql_real_connect(coon, IP, "root", "123456", "test_db", 0, NULL, 0)){
            printf("connect fail.....");
        }
        else{
            printf("connect successful。。。");
            mysql_set_character_set(coon, "utf-8");
            mysql_autocommit(coon,0);
            char selectQuery[200] ="select str from test_table where id =1";
            int iResault = mysql_real_query(coon, selectQuery, strlen(selectQuery));
            int t=0;
            if (iResault)
            {
                printf("select fail。。。。");
                mysql_close(coon);
                return 0;
            }
            else{
                mysql_res = mysql_store_result(coon);
                if (!mysql_res)
                {
                    printf("mysql_store_result(coon) fail....");
                    mysql_close(coon);
                    return 0;
                }
                else{
                    while (mysql_row=mysql_fetch_row(mysql_res))
                    {
                        //for (;t<mysql_num_fields(mysql_res);t++)
                        //{
                            printf("%s
    ", mysql_row[0]);
                        //}
                    }
                }
                
            }
            
        }
        mysql_free_result(mysql_res);
        mysql_close(coon);
        return 0;
    }

    如果你不知道musql.h在什么地方,可以使用linux命令查找。例子中从根目录中开始找。

    find / -name mysql.h
    

    当你编写好代码后,在gcc编译的时候如要加上额外的客户端动态链接库,否则会出现mysqlAPI函数找不到或未定义API函数接口。

    gcc -o target target.c -L/PATH -lmysqlclient

    PATH是mysqlclient动态链接库所在的路径。不知道在何处就使用命令查找

    find / -name libmysqlclient.so
    

    编译就会成功。

    注意一点:动态链接库中lib 和.so是系统自动添加的,所以哭的名字要去掉这些字符。客户端链接库打印出来看到的是libmysqlclient.so

    2017-07-25 14:03:02

    为了编译方便最好写一个简单的Makefile,我已写好最简单不过了,代码如下:

    myServer:myServer.o
            gcc -o myServer myServer.o -L/usr/lib/x86_64-linux-gnu/ -lmysqlclient
    myServer.o:myServer.c
            gcc -c myServer.c
    .PHONY:clean
    clean:
            -rm myServer myServer.o
    

    也可以写成如下格式:

    Object=myServer.o
    cc=gcc
    myServer:$(Object)
    cc -o myServer $(Object) -L/usr/lib/x86_64-linux-gnu/ -lmysqlclient
    myServer.o:myServer.c
    cc -c myServer.c
    .PHONY:clean
    clean:
    -rm myServer $(Object)
    

    具体请细读和我一起写Makrfile

    编写好代码后要进行调试,可以使用GDB调试,这就需要在系统中安装GCC编译器,同理使用apt-get install gcc命令安装

    安装好后再使用gcc 编译的时候 记得加上-g参数。

    gcc -g -o target target.c -LPATH -lmysqlclient
    

    然后使用

    gdb target
    

    进入调试阶段

    通过查看linux手册可以发现GDB的参数设置如下图所示

    作者:first_semon
             
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。如有问题,欢迎交流
  • 相关阅读:
    从头学习Drupal基本概念和架构
    《Zend Framework in Action》 《ZF实战》 中文翻译
    網頁技術與標準
    Symbian定义属于自己MenuBar(转)
    Symbian中使用日志类(RFileLogger)(转)
    如何向Symbian C++程序中添加多语言支持(转)
    (转)symbian 接入点选择 & ini文件读写
    How to get TDataType (Mime type) of a file(转)
    Function ereg() is deprecated——drupal6.13 & PHP5.3
    ecom.h: No such file or directory
  • 原文地址:https://www.cnblogs.com/first-semon/p/7229367.html
Copyright © 2011-2022 走看看