在CentOS系统下为C++项目配置数据库,通常涉及以下几个步骤:
CentOS 8默认使用MariaDB,而CentOS 7使用MySQL。以下是安装MariaDB的步骤:
sudo yum install mariadb-server mariadb
sudo systemctl start mariadb
sudo systemctl enable mariadb
sudo mysql_secure_installation
按照提示设置root密码,删除匿名用户,禁止root远程登录等。
C++项目通常使用MySQL或MariaDB的C API进行数据库操作。以下是安装MySQL C API的步骤:
sudo yum install mysql-devel
在你的C++项目中,你需要包含MySQL的头文件并链接MySQL库。
假设你有一个简单的C++项目,连接到数据库并执行一个查询。
#include <mysql/mysql.h>
#include <iostream>
int main() {
MYSQL *conn;
MYSQL_RES *res;
MYSQL_ROW row;
// 初始化连接
conn = mysql_init(NULL);
// 连接到数据库
if (!mysql_real_connect(conn, "localhost", "root", "your_password", "your_database", 0, NULL, 0)) {
fprintf(stderr, "%s\n", mysql_error(conn));
exit(1);
}
// 执行查询
if (mysql_query(conn, "SHOW TABLES")) {
fprintf(stderr, "%s\n", mysql_error(conn));
exit(1);
}
// 获取结果集
res = mysql_store_result(conn);
// 输出表名
while ((row = mysql_fetch_row(res))) {
std::cout << row[0] << std::endl;
}
// 释放资源
mysql_free_result(res);
mysql_close(conn);
return 0;
}
使用g++编译你的项目,并链接MySQL库:
g++ -o myapp myapp.cpp -lmysqlclient
编译成功后,运行你的项目:
./myapp
如果你的数据库服务器和C++应用程序不在同一台机器上,你需要配置防火墙允许数据库端口(默认是3306)的流量。
sudo firewall-cmd --permanent --zone=public --add-port=3306/tcp
sudo firewall-cmd --reload
通过以上步骤,你可以在CentOS系统下为C++项目配置并使用数据库。