c++ mysql linux
时间: 2025-01-02 11:38:04 浏览: 18
### Linux 下使用 C++ 连接 MySQL 数据库
在 Linux 环境中通过 C++ 连接到 MySQL 数据库涉及多个步骤,包括必要的软件安装以及编写相应的代码来建立连接。
#### 软件准备
对于 Fedora 发行版而言,需要执行 `sudo yum install mysql-devel` 来获取所需的开发包[^1]。而对于 Ubuntu 用户,则应采用 `sudo apt-get install libmysqld-dev` 命令完成相同目的。此外,在处理 MySQL 8.0 版本时,可能还需额外安装 Boost 库 (`sudo apt-get install libboost-all-dev`) 和特定版本的 Connector/C++ 库 (可从官方网站下载)[^4]。
#### 编写程序实现数据库连接
下面是一个简单的例子展示怎样利用 C++ 实现与本地 MySQL 数据库的安全连接:
```cpp
#include <mysql/mysql.h>
#include <iostream>
int main(){
MYSQL *my = mysql_init(NULL);
if (!my){
std::cerr << "Initialization failed\n";
return EXIT_FAILURE;
}
// 尝试连接至 localhost 的 MySQL 数据库 'conn' ,端口为 3306,默认用户名 root 并无密码设置
if(mysql_real_connect(my, "127.0.0.1", "root", NULL, "conn", 3306, NULL, 0)){
std::cout << "Connection successful.\n";
// 此处可以加入更多操作逻辑
mysql_close(my); // 关闭连接前记得释放资源
}
else{
fprintf(stderr, "%s\n", mysql_error(my));
mysql_close(my);
exit(1);
}
return 0;
}
```
此段代码展示了基本流程:先初始化 MySQL 结构体指针;接着尝试调用 `mysql_real_connect()` 函数进行实际连接,并检查其返回值以确认是否成功建立了通信链路[^2]。如果遇到错误情况,会打印出具体的错误信息帮助调试。
#### 处理共享库缺失问题
当出现类似于 “error while loading shared libraries: libmysqlclient.so.20”的提示时,这通常意味着系统找不到所需动态链接库的位置。解决方案之一是在 `/etc/ld.so.conf.d/` 目录下创建一个新的配置文件并将包含 `.so` 文件的实际路径添加进去,之后运行 `ldconfig -v` 更新缓存使更改生效[^5]。另一种方式则是直接修改环境变量 `LD_LIBRARY_PATH` 或者创建指向目标 `.so` 文件的符号链接放置于系统的标准搜索路径内。
阅读全文