CMake项目部署MySQL数据库

avatar
作者
猴君
阅读量:0

在CMake项目中部署MySQL数据库,需要遵循以下步骤:

  1. 安装MySQL数据库和开发库:

    对于Ubuntu/Debian系统,可以使用以下命令安装MySQL数据库和开发库:

    sudo apt-get install mysql-server libmysqlclient-dev 

    对于CentOS/RHEL系统,可以使用以下命令安装MySQL数据库和开发库:

    sudo yum install mysql-server mysql-devel 
  2. 配置MySQL数据库:

    启动MySQL服务并设置开机自启动:

    sudo systemctl start mysqld sudo systemctl enable mysqld 

    运行MySQL安全安装脚本,设置root密码并进行其他安全配置:

    sudo mysql_secure_installation 
  3. 创建数据库和表结构:

    登录到MySQL控制台:

    mysql -u root -p 

    创建一个新的数据库:

    CREATE DATABASE my_database; 

    选择刚刚创建的数据库:

    USE my_database; 

    创建表结构(以一个简单的用户表为例):

    CREATE TABLE users (     id INT AUTO_INCREMENT PRIMARY KEY,     username VARCHAR(255) NOT NULL UNIQUE,     password VARCHAR(255) NOT NULL ); 
  4. 在CMake项目中链接MySQL库:

    在项目的CMakeLists.txt文件中,添加以下内容:

    find_package(MySQL REQUIRED) include_directories(${MYSQL_INCLUDE_DIRS}) target_link_libraries(your_target_name ${MYSQL_LIBRARIES}) 

    这里的your_target_name是你的CMake项目的目标名称。

  5. 编写代码连接MySQL数据库:

    在项目中编写C++代码,使用MySQL C API或者C++连接器(如MySQL++)连接到数据库。以下是一个简单的示例:

    #include<iostream> #include<mysqlx/xdevapi.h>  using namespace mysqlx;  int main() {     const std::string url = "mysqlx://username:password@localhost:33060";     const std::string schema_name = "my_database";      try {         Session session(url);         Schema schema = session.getSchema(schema_name);         Table table = schema.getTable("users");          // 查询所有用户         RowResult result = table.select().execute();          // 输出查询结果         std::cout << "Users:"<< std::endl;         for (Row row : result) {             std::cout << "ID: "<< row[0].get<int>() << ", Username: "<< row[1].get<std::string>() << ", Password: "<< row[2].get<std::string>()<< std::endl;         }     } catch (const Error& e) {         std::cerr << "Error: " << e.what()<< std::endl;         return 1;     }      return 0; } 
  6. 编译和运行项目:

    使用CMake编译项目,并运行生成的可执行文件。现在,你的项目应该已经成功连接到MySQL数据库,并执行了一些基本操作。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!