34安装+连接数据库

在Ubuntu下安装Mysql.

ubuntu上安装mysql非常简单只需要几条命令就可以完成。

 1. sudo apt-get install mysql-server

 2. apt-get isntall mysql-client

 3.  sudo apt-get install libmysqlclient-dev

可能出现的问题:

letuknowit@ubuntu:~$ sudo apt-get install mysql-server mysql-client

[sudo] password for letuknowit:

Reading package lists… Done

Building dependency tree   

Reading state information… Done

E: Unable to locate package mysql-server

E: Unable to locate package mysql-client

letuknowit@ubuntu:~$

解决方法执行下面的命令:

  sudo apt-get update

再进行安装。

安装完成之后可以使用如下命令来检查是否安装成功:

   sudo netstat -tap | grep mysql

登陆mysql数据库可以通过如下命令:

  mysql -u root -p

-u 表示选择登陆的用户名, -p 表示登陆的用户密码,上面命令输入之后会提示输入密码,此时输入密码就可以登录到mysql。

然后通过 show databases; 就可以查看当前的数据库。(注:一定要加上分号)

显示当前数据库的表单:show tables;

数据库连接

#include<mysql/mysql.h>

mysql_init(MYSQL  *mysql)

MYSQL* mysql_real_connect(

     MYSQL *mysql,  char   *host,   

     char *user,   char * passwd,  

     char *dbname,   uint port,   

     const char *socket,   ulong client_flag)

 创建数据库连接,通过 mysql 进行数据库操作

数据库操作

int  mysql_real_query(

    MYSQL *mysql,

    char *sql,

     int    sql_len)

对数据库进行操作,sql 可以是 增删改查等语句

数据库操作 获取结果

MYSQL_RES  *res = my_use_result(MYSQL* mysql)

  获取查询结果

   

MYSQL_ROW   row = mysql_fetch_row(MYSQL *res)

  获取查询结果某行,指针自动偏移,末尾返回NULL

  row[0], ...., row[N]   分别为各项的值    

数据库操作  获取结果

  char *mysql_error(MYSQL* mysql)

int mysql_num_fields(MYSQL_ROW  row)

  获取记录域个数

 mysql_close(MYSQL *mysql)

  关闭数据库连接

mysql_select_db(MYSQL* mysql, char *dbname);

   数据库操作  选择数据库

编译

编译时需要链接动态库 libmysqlclient.so

gcc   mysql_demo.c  -o  mysql_demo   -lmysqlclient

简单查询数据库例子:

#include <mysql/mysql.h>
#include <stdio.h>
#include <stdlib.h>
int main() 
{
    MYSQL *conn;
    MYSQL_RES *res;
    MYSQL_ROW row;
    char server[] = "localhost";
    char user[] = "root";
    char password[] = "123";		//your password  when you crete database
    char database[] = "mysql";
    
    conn = mysql_init(NULL);
    
    if (!mysql_real_connect(conn, server,user, password, database, 0, NULL, 0)) 
    {
        fprintf(stderr, "%s
", mysql_error(conn));
        exit(1);
    }
    
    if (mysql_query(conn, "show tables")) 
    {
        fprintf(stderr, "%s
", mysql_error(conn));
        exit(1);
    }
    
    res = mysql_use_result(conn);
    
    printf("MySQL Tables in mysql database:
");
    
    while ((row = mysql_fetch_row(res)) != NULL)
    {
        printf("%s 
", row[0]);
    }
    
    mysql_free_result(res);
    mysql_close(conn);
    
    printf("finish! 
");
    return 0;
}

  

原文地址:https://www.cnblogs.com/gd-luojialin/p/10371607.html