linux安装mysql和使用c语言操作数据库的方法 c语言连接mysql

 更新时间:2014年01月23日 16:40:21   作者:  
Linux下使用C语言操作数据库的方法,我将从MySQL环境的搭建,MySQL命令的使用到使用C接口来操作MySQL等过程详细的介绍在Linux下管理MySQL数据库的方法

1. MySQL的安装与配置:

在Ubuntu下安装MySQL方法很简单,使用如下命令:

复制代码 代码如下:

sudo apt-get install mysql-server

安装的过程中系统会提示设置root密码,此过程可以跳过,但是建议在安装时提示设置root密码的时候自行设置,免得后面设置麻烦。安装结束之后,系统会启动mysql服务,可以使用命令去查看来验证mysql服务是否已经安装成功:

复制代码 代码如下:

ps -el | grep mysql

如果mysql服务没有正常的运行,可以使用下面指令对mysql服务进行重启:

复制代码 代码如下:

sudo service mysql restart

喜欢使用Workbench界面的,还需要安装Workbench:

复制代码 代码如下:

sudo apt-get install mysql-workbench

Workbench的启动使用如下命令:

复制代码 代码如下:

mysql-workbench --log-level=debug3 --verbose

2. MySQL命令行:

我们使用root去登录MySQL,然后做相关的操作:

复制代码 代码如下:

mysql -u root -p

在此,系统会提示输入密码,只需要输入之前设置的MySQL密码即可,然后程序会进入mysql命令行模式下,假设我们需要查看user信息,我们使用如下命令:

复制代码 代码如下:

use mysql
SELECT host, user, password FROM user;

MySQL会返回所有host,user和password等信息。其他比较复杂的操作,诸如添加数据库,添加表等和普通的数据操作命令一致,后面会以一个实例来说明。让我们赶快进入Linux下C操作MySQL的实践吧!

3. 使用C语言管理MySQL数据库:

首先,我们需要安装在Linux下操作MySQL多依赖的库,安装命令如下:

复制代码 代码如下:

sudo apt-get install libmysqlclient-dev

安装了这个之后,我们编程所需要的头文件,库文件等就齐全了,让我们开始C编程之旅吧!

首先,让我们准备一个我们用来折腾的空间,也就是准备一个折腾专属账户,一个折腾专属数据库和数据表等:

复制代码 代码如下:

#添加账户
GRANT ALL ON *.* TO rick@localhost IDENTIFIED BY 'secret'
\q
#使用新创建的rick账户登录
mysql -u rick -p
#创建数据库
CREATE DATABASE foo;

然后,我们使用一个sql文件插入数据表和测试数据:

复制代码 代码如下:

--
-- Create the table children
--
CREATE TABLE children (
    childno int(11) NOT NULL auto_increment,
    fname varchar(30),
    age int(11),
    PRIMARY KEY (childno)
);
--
-- Populate the table 'children'
--
INSERT INTO children(childno, fname, age) VALUES (1, 'Jenny', 21);
INSERT INTO children(childno, fname, age) VALUES (2, 'Andrew', 17);
INSERT INTO children(childno, fname, age) VALUES (3, 'Gavin', 8);
INSERT INTO children(childno, fname, age) VALUES (4, 'Duncan', 6);
INSERT INTO children(childno, fname, age) VALUES (5, 'Emma', 4);
INSERT INTO children(childno, fname, age) VALUES (6, 'Alex', 15);
INSERT INTO children(childno, fname, age) VALUES (7, 'Adrian', 9);

将上述sql语句存为create_children.sql,然后使用下列命令导入MySQL数据库foo:

复制代码 代码如下:

mysql -u rick --password=secret foo
\. create_children.sql

好了,写个demo进行测试吧:

复制代码 代码如下:

#include <stdlib.h>
#include <stdio.h>

#include "mysql.h"

int main(int argc, char *argv[]) {
    MYSQL my_connection;
    int res;

    mysql_init(&my_connection);
    if (mysql_real_connect(&my_connection, "localhost",
                "rick", "secret", "foo", 0, NULL, 0)) {
        printf("Connection success\n");
        res = mysql_query(&my_connection, "INSERT INTO children(fname, age) VALUES('Ann', 3)");
        if (!res) {
            printf("Inserted %lu rows\n",
                    (unsigned long)mysql_affected_rows(&my_connection));
        } else {
            fprintf(stderr, "Insert error %d: %s\n", mysql_errno(&my_connection), mysql_error(&my_connection));
        }

        mysql_close(&my_connection);
    } else {
        fprintf(stderr, "Connection failed\n");
        if (mysql_error(&my_connection)) {
            fprintf(stderr, "Connection error %d: %s\n", mysql_errno(&my_connection), mysql_error(&my_connection));
        }
    }
    return EXIT_SUCCESS;
}

将上述代码保存为demo.c。上述代码中,我们需要包含mysql.h头文件来使用mysql提供的API对MySQL进行操作。程序写好了,编译过程需要加入需要的链接信息:

复制代码 代码如下:

gcc -I/usr/include/mysql demo.c -L/usr/lib/mysql -lmysqlclient -o demo

好了,程序成功编译,运行一下试试吧:

复制代码 代码如下:

./demo

#结果如下
Connection success
Inserted 1 rows

相关文章

  • C++实现LeetCode(169.求大多数)

    C++实现LeetCode(169.求大多数)

    这篇文章主要介绍了C++实现LeetCode(169.求大多数),本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-08-08
  • C/C++连接MySQL数据库详细图文教程

    C/C++连接MySQL数据库详细图文教程

    在实际开发中我们经常需要对数据库进行访问,下面这篇文章主要介绍了C/C++连接MySQL数据库的详细图文教程,文中通过代码以及图文介绍是非常详细,需要的朋友可以参考下
    2024-01-01
  • FFmpeg实现将编码后数据保存成mp4

    FFmpeg实现将编码后数据保存成mp4

    这篇文章主要为大家详细介绍了FFmpeg如何实现将编码后数据保存成mp4,即从内存块中获取原始数据,然后依次进行解码、编码、最后保存成mp4视频文件,感兴趣的可以了解一下
    2023-08-08
  • C++ 十进制转换为二进制的实例代码

    C++ 十进制转换为二进制的实例代码

    这篇文章介绍了C++ 十进制转换为二进制的实例代码,有需要的朋友可以参考一下
    2013-10-10
  • Cocos2d-x Schedule定时器的使用实例

    Cocos2d-x Schedule定时器的使用实例

    这篇文章主要介绍了Cocos2d-x Schedule定时器的使用实例,本文的讲解内容包含在代码注释中,需要的朋友可以参考下
    2014-09-09
  • C语言中数据是如何存储在内存中的

    C语言中数据是如何存储在内存中的

    使用编程语言进行编程时,需要用到各种变量来存储各种信息。变量保留的是它所存储的值的内存位置。这意味着,当您创建一个变量时,就会在内存中保留一些空间。您可能需要存储各种数据类型的信息,操作系统会根据变量的数据类型,来分配内存和决定在保留内存中存储什么
    2022-04-04
  • C语言实现文件版通讯录的代码分享

    C语言实现文件版通讯录的代码分享

    这篇文章主要为大家详细介绍了如何利用C语言实现一个文件版通讯录,主要运用了结构体,一维数组,函数,分支与循环语句等等知识,需要的可以参考一下
    2023-01-01
  • C++ 虚函数及虚函数表详解

    C++ 虚函数及虚函数表详解

    这篇文章主要介绍了c++ 虚函数及虚函数表详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-11-11
  • C++中用new创建二维数组和指针数组实例代码

    C++中用new创建二维数组和指针数组实例代码

    这篇文章主要介绍了C++中用new创建二维数组和指针数组实例代码,非常不错,具有参考借鉴价值,需要的朋友参考下
    2017-03-03
  • 使用C++的inipp库处理配置文件.ini的示例详解

    使用C++的inipp库处理配置文件.ini的示例详解

    一个ini文件由多个节section组成,每个节由多个键值对组成,本文给大家介绍了使用第三方库inipp来操作ini文件,文中通过代码示例讲解的非常详细,需要的朋友可以参考下
    2024-01-01

最新评论