Linux下将MYSQL结合到C++代码中

安装MYSQL

首先,要先安装MYSQL:

sudo apt-get install mysql-server mysql-client

默认的端口是3306,可以检查一下:

netstat -ntulp | grep 3306

试一下能不能进入MYSQL:

mysql -u root -p123456

这时候有一个问题,可能安装了MYSQL,但是登不进去。这是因为安装的时候没有出现让我们自己设置账号密码的环节。解决办法:

  1. sudo cat /etc/mysql/debian.cnf 

    出现下面界面:

  2. 用默认的账号和密码登录:

    mysql -u debian-sys-maint -pAELQ7KUX1avU0akc

    出现下面界面:

  3. 修改账号密码

    进入数据库:

    use mysql; 

    修改密码:

    update mysql.user set authentication_string=password('123456') where user='root' and Host ='localhost'; 
    update user set  plugin="mysql_native_password";  
    flush privileges;
    quit;

使用MYSQL

用到的头文件在:

#include <mysql/mysql.h>

里面有一个类:MYSQL

这个类实例化一个对象:

MYSQL* mysql;

如果要得到查询的结果的话需要用到这个对象。

需要开辟一下内存地址:

mysql = mysql_init(nullptr);

首先要进入(连接)数据库,就和如下命令行差不多的操作:

mysql -u root -p123456

 那在C++里是这样的:

MYSQL *p = mysql_real_connect(mysql, ipad.c_str(), user.c_str(), password.c_str(), dbname.c_str(), port, nullptr, 0);
/*
ipad是IP地址
user是账号
password是密码
dbname是数据库
port是端口号
*/

接下来就是用C++来操作数据库啦。

建表:

string sql = "create table testtable(id int primary key, name varchar(20));"; // 建表
mysql_query(mysql, sql.c_str());

插入数据:

sql = "insert into testtable values(1,'zhu');"; // 插入数据
mysql_query(mysql, sql.c_str());

查询:

sql = "select * from testtable where id = 1;"; // 查询数据
mysql_query(mysql, sql.c_str());

打印查询的数据:

MYSQL_RES *res = mysql_use_result(mysql);
MYSQL_ROW row = mysql_fetch_row(res);
cout << "id: " << atoi(row[0]) << endl;
cout << "name: " << row[1] << endl;

代码原文:

#include <mysql/mysql.h>
#include <iostream>
#include <string>

using namespace std;

int main()
{
    MYSQL *mysql;
    mysql = mysql_init(nullptr);
    string ipad = "127.0.0.1";
    string user = "root";
    string password = "123456";
    string dbname = "testmysql"; // 这是已经建好的数据库。
    int port = 3306;
    MYSQL *p = mysql_real_connect(mysql, ipad.c_str(), user.c_str(), password.c_str(), dbname.c_str(), port, nullptr, 0);

    string sql = "create table testtable(id int primary key, name varchar(20));"; // 建表
    mysql_query(mysql, sql.c_str());

    sql = "insert into testtable values(1,'zhu');"; // 插入数据
    mysql_query(mysql, sql.c_str());

    sql = "select * from testtable where id = 1;"; // 查询数据
    mysql_query(mysql, sql.c_str());

    MYSQL_RES *res = mysql_use_result(mysql);
    MYSQL_ROW row = mysql_fetch_row(res);
    cout << "id: " << atoi(row[0]) << endl;
    cout << "name: " << row[1] << endl;
}

编译:

g++ -o test main.cpp -lmysqlclient

输出:

id: 1
name: zhu

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Linux C MySQL 是一个开源项目,它结合Linux操作系统、C语言编程和MySQL数据库的使用。 首先,Linux是一个自由且开放源代码的操作系统。它的内核是由Linus Torvalds等人开发的,并经过全球的开发者共同维护和改进。Linux操作系统具有高度的灵活性、可定制性和可扩展性,能够适应各种不同的应用场景。 C语言是一种通用的高级编程语言,被广泛用于系统程序设计和开发。使用C语言能够开发出高效、稳定和可靠的程序。在Linux操作系统,C语言是与系统内核交互的主要编程语言,可以通过C语言编写各种系统工具、驱动程序以及用户空间应用程序。 MySQL是一个广受欢迎的关系型数据库管理系统。它是开源的,能够运行在多个平台上。MySQL具有高性能、可靠性和可扩展性,提供了丰富的功能和灵活的配置选项。通过使用MySQL,开发者可以方便地存储、管理和检索数据,满足不同应用场景的数据库需求。 Linux C MySQL开源项目将这三者结合起来,通过使用C语言编写程序在Linux操作系统上与MySQL数据库进行交互。开发者可以利用Linux的灵活性和C语言的高效性,来实现各种功能丰富的应用程序和系统工具。而MySQL数据库提供了高效的数据存储和管理能力,为应用程序提供可靠的数据支持。 总之,Linux C MySQL开源项目是一个集合了Linux操作系统、C语言编程和MySQL数据库的综合项目。它可以为开发者提供开放、灵活和高性能的开发环境,满足各种项目需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值