Linux下使用C++连接MySQL8.0(即Connector/C++ 8.0)

正确安装MySQL8.0

参考这篇成功安装MySQL8.0

安装boost库

sudo apt-get install libboost-all-dev

安装 C++Connector 库

https://dev.mysql.com/downloads/connector/cpp/

在这里插入图片描述
我用的是上面的前三个包,

dpkg -i 文件名.deb
注意-dev包最后一个安装

Makefile

MYSQL_CONCPP_DIR= /usr
CPPFLAGS = -I $(MYSQL_CONCPP_DIR)/include -L $(MYSQL_CONCPP_DIR)/lib64
LDLIBS = -lmysqlcppconn8
CXXFLAGS = -std=c++11
 
app : app.cc

app.cc

#include <iostream>
#include<mysql-cppconn-8/mysqlx/xdevapi.h>
#include<mysql-cppconn-8/mysqlx/xapi.h>
using namespace mysqlx;
 
void ptUser() {
    using std::cout;
    using std::endl;
    using std::vector;
 
    try {
        const char* url = "mysqlx://mazamu:aaa@127.0.0.1:33060/webserver?ssl-mode=disabled";  
        //注意 mysqlcppconn8 默认使用的端口:33060,若连接3306端口会提示错误
        //使用用户名:mazamu
        //用户 root 的密码是:aaa
        //主机:127.0.0.1
        //端口:33060
        //数据库:webserver
 
        cout << "Creating session on " << url
             << " ..." << endl;
 
        SessionSettings option("127.0.0.1", 33060, "mazamu", "aaa");
        Session sess(option); //也可使用这种方式连接
        //Session sess(url);  第一种方式建立连接
        
        cout <<"Done!" <<endl;
        cout <<"Session accepted, creating collection..." <<endl;
 
        sess.sql("use webserver").execute();  //使用数据库 webserver
 
        //如何存取时间类型值,在 mysqlcppconn8 中并没有很好的规定
        //注意,我们在此处将字符串转为 timestamp 类型,以插入该条数据
        sess.sql(R"(insert into user (`username`, `email`, `password`, `create_time`) values
                         ('ice', 'kawaii@qq.com', '654321', timestamp('2020-06-14 17:00:00')))"
                         ).execute();
 
        //注意,我们在此处 timestamp 类型转换为字符串,以取出该条数据
        RowResult rs = sess.sql("select username, email, password, cast(create_time as char) from user").execute();
        for (auto it = rs.begin();it != rs.end();++it){
            cout << (*it).get(0).get<string>() <<" ";
            cout << (*it).get(1).get<string>() <<" ";
            cout << (*it).get(2).get<string>() <<" ";
            cout << (*it).get(3).get<string>();
            cout << endl;
        }
 
    } catch (const Error& e) {
        cout << e.what() <<endl;
    }
}
int main()
{
    ptUser();
    return 0;
}

然后

make app
./app

运行成功结果

root@iZwz99maqk0p1ov6x15rytZ:~/demo/db-playground/C++# ./app
Creating session on mysqlx://mazamu:aaa@127.0.0.1:33060/webserver?ssl-mode=disabled ...
Done!
Session accepted, creating collection...
ice kawaii@qq.com 654321 2020-06-14 17:00:00
test test@163.com testpwd 2021-10-09 15:56:39

参考文章:
Linux下使用C++连接MySql8.0一二三事

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在VS2019中连接MySQL 8.数据,您需要遵循以下步骤: 1. 安装MySQL Connector/C++:在连接MySQL数据之前,您需要安装MySQL Connector/C++。您可以从MySQL官方网站下载并安装最新版本的MySQL Connector/C++。 2. 创建一个新的C++项目:在VS2019中,创建一个新的C++项目。 3. 添加MySQL Connector/C++:在项目属性中,添加MySQL Connector/C++。您需要添加以下文件: - libmysql.lib - mysqlcppconn.lib 4. 编写代码:在您的C++代码中,使用MySQL Connector/C++ API连接MySQL数据。您需要提供以下信息: - 主机名 - 用户名 - 密码 - 数据名称 以下是一个简单的示例代码: #include <iostream> #include <mysql_connection.h> #include <mysql_driver.h> #include <cppconn/driver.h> #include <cppconn/exception.h> #include <cppconn/resultset.h> #include <cppconn/statement.h> using namespace std; int main() { sql::Driver *driver; sql::Connection *con; sql::Statement *stmt; sql::ResultSet *res; driver = get_driver_instance(); con = driver->connect("tcp://127...1:3306", "root", "password"); con->setSchema("mydatabase"); stmt = con->createStatement(); res = stmt->executeQuery("SELECT * FROM mytable"); while (res->next()) { cout << res->getString("column1") << endl; } delete res; delete stmt; delete con; return ; } 请注意,您需要将“127...1”替换为您的MySQL服务器的IP地址,将“root”替换为您的MySQL用户名,将“password”替换为您的MySQL密码,将“mydatabase”替换为您要连接的数据名称,将“mytable”替换为您要查询的表名,将“column1”替换为您要检索的列名。 希望这可以帮助您连接MySQL 8.数据
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值