码迷,mamicode.com
首页 > 数据库 > 详细

Linux下实现Mysql开发环境的部署和数据库程序的实现

时间:2016-12-05 02:22:55      阅读:278      评论:0      收藏:0      [点我收藏+]

标签:connect   display   hid   printf   需要   data   value   adb   stream   

SQL本身并不复杂,实际上我感觉部署mysql的环境才是最复杂的。

这里采用了centos6.5系统来部署环境。

 

首先需要安装数据库和数据库开发环境,以及编译环境

 

yum install MySQL MySQL-server MySQL-devel gcc gcc-c++ -y

 

然后运行数据库

service mysqld start

如果你用的是centos7以上的系统,mysql就被mariadb取代用以下命令执行

systemctl start mariadb.service 

现在直接在控制台输入mysql即可进入数据库系统

这里用数据库自带的test来进行数据的导入,如果不导入,那么就直接创建一个数据库,可尝试建立一个简单的数据库,使用以下命令

技术分享
1 create database MySQL 
2 (Sno char(20) primary key,
3     Sname char(20) NOT NULL,
4     sage smallint,
5     sGdener char(2) check(sGender inM,F)
6 );
View Code

好,这就建立了一个简单的数据库,现在导入我们对数据库的简单程序,注意这里的程序和刚才新建立的表使用的码是不一样的。

额外注意的是,这里使用了sprintf实现了对sql变量的查询。

令人头疼的是,在编译的过程中始终提示找不到数据库头文件,这里采用这样的编译命令来执行

g++ sql2.cpp `mysql_config --cflags --libs` -o sql2

  下面是程序的主体部分

#include <cstdio>
#include <mysql.h>
#include<iostream>
#include<string.h>
using namespace std;


//本程序在centos6.5中测试通过,如需测试,把2000万数据数据导入名为test的数据库中后尝试

//这是编译命令,直接复制粘贴即可
//g++ sql2.cpp `mysql_config --cflags --libs` -o sql2

//运行前先要安装mysql-devel库

//create database test (name vchar(200),numb int(20));
int main()
{
    MYSQL conn;
    int res;
    char sql_insert[200]; 
    int *name;
    int numb;
    MYSQL_RES *res_ptr;
    MYSQL_ROW result_row;
    MYSQL_FIELD *field;
    int row;
    int column;
    int i,j;
    string name;
    //cin >>name;
    cin>>numb;
    cin>>name;
    sprintf(sql_insert, "SELECT distinct *  FROM cdsgus where Ctfid=%d Name=‘%s‘ ", numb,name);
    mysql_init(&conn);
    if(mysql_real_connect(&conn,"localhost","root","","test",0,NULL,CLIENT_FOUND_ROWS)) 
    {
        printf("connect success!\n");
        //mysql_query(&conn,"insert into test values(‘user‘,‘123456‘)");
        res=mysql_query(&conn, sql_insert);
        if(res)
            return(0);
        else {
            res_ptr = mysql_store_result(&conn);
                if(res_ptr){
                    column = mysql_num_fields(res_ptr);
                    row = mysql_num_rows(res_ptr) + 1;
                    printf("there is %lu line \n", row);
                    for (i = 0; field = mysql_fetch_field(res_ptr); i++)
                        printf("%s\t", field->name);
                    printf("\n");
                }
             for (i = 1; i < row; i++)
            {
            result_row = mysql_fetch_row(res_ptr);//这里res_ptr实际上相当于游标
            for (j = 0; j < column; j++)
            printf("%s\t", result_row[j]);
            printf("\n");  
            }  
        }
    }
    mysql_close(&conn);     
    return 0;
}

 

Linux下实现Mysql开发环境的部署和数据库程序的实现

标签:connect   display   hid   printf   需要   data   value   adb   stream   

原文地址:http://www.cnblogs.com/hakase/p/6132368.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!