Boost
arrow_drop_down
Boost.MySQL
M
D

本次发布

Anarthal (Rubén Pérez)
Anarthal (Rubén Pérez)
作者

依赖项

Boost.MySQL

分支 Windows/Linux 构建 OSX 构建 覆盖率 文档
master Build Status Build Status codecov master 分支文档
develop Build Status Build Status codecov develop 分支文档

Boost.MySQL 是一个基于 Boost.Asio 的 C++11 客户端,用于 MySQL 和 MariaDB 数据库服务器。Boost.MySQL 是 Boost 的一部分。

Boost 1.85 中的重大更改

Boost.MySQL 现在需要链接 Boost.Charconv,这是一个已编译的库。如果您遇到链接错误,请将您的可执行文件链接到 Boost::charconv CMake 目标。无需更改 C++ 代码。

反馈

您有什么建议吗?您想分享在使用该库过程中的糟糕或良好体验吗?请 在此 issue 发表评论。

为什么还要有一个 MySQL C++ 客户端?

  • 它与 Boost.Asio 完全兼容,并且可以很好地与 Boost.Asio 生态系统中的任何其他库(如 Boost.Beast)集成。
  • 它支持 Boost.Asio 的通用异步模型,这意味着您可以使用回调、future 或 coroutine(包括 C++20 coroutine)来实现异步。
  • 它是用 C++11 编写的,并充分利用了 C++11 的特性。
  • 它是纯头文件库。

使用库

要使用此库,您需要

  • Boost 1.82 或更高版本(Boost.MySQL 不能与独立 Asio 一起使用)。
  • 支持 C++11 的编译器。
  • OpenSSL。

该库是纯头文件库,但它依赖于其他 Boost 纯头文件库和 OpenSSL。要使用该库,请照常安装 Boost(例如,通过 b2 install),并创建一个 CMakeLists.txt 文件,内容如下(将 main 替换为您的可执行文件名,将 main.cpp 替换为您源文件的列表)

project(boost_mysql_example LANGUAGES CXX)

find_package(Boost REQUIRED COMPONENTS charconv)
find_package(Threads REQUIRED)
find_package(OpenSSL REQUIRED)

add_executable(main main.cpp)
target_link_libraries(main PRIVATE Boost::charconv Threads::Threads OpenSSL::Crypto OpenSSL::SSL)

已测试

Boost.MySQL 已使用以下编译器进行了测试

  • gcc 5 至 15。
  • clang 4 至 20。
  • msvc 14.1、14.2 和 14.3。

以及与以下数据库

  • MySQL v5.7.41。
  • MySQL v8.4.1。
  • MariaDB v11.4.2。

功能

  • 文本查询(执行文本 SQL 查询和数据检索)。MySQL 将此称为“文本协议”,因为所有信息都通过文本传递(与下面的预处理语句相对)。
  • 预处理语句。MySQL 将此称为“二进制协议”,因为执行预处理语句的结果以二进制格式而不是文本格式发送。
  • 存储过程。
  • 身份验证方法(身份验证插件):mysql_native_password 和 caching_sha2_password。这些是 MySQL 5/MariaDB 和 MySQL 8 中的默认方法,分别。
  • 加密连接(TLS)。
  • TCP 和 UNIX 套接字传输。
  • 连接池。
  • 友好的客户端生成 SQL。
  • (实验性) 管道。

全部时间

Dirk Stolle
Dirk Stolle
贡献者
Rene Rivera
Rene Rivera
贡献者
glywk
glywk
贡献者
Holger Hoffstätte
贡献者