首先要安裝MySQL
sudo apt install -y mysql-server mysql-client libmysqlclient-dev cat /etc/mysql/debian.cnf # 獲取密碼
mysql -udebian-sys-maint -p # 輸入上面現實的密碼 use mysql; alter user "root"@"localhost" identified with mysql_native_password by "新密碼"; # 設置root密碼 flush privileges; update user set host='%' where user='root'; # 設置遠程鏈接 flush privileges; exit # 退出mysql sudo gedit /etc/mysql/mysql.conf.d/mysqld.cnf # 打開配置文件修改配置 bind-address = 0.0.0.0 # 修改,可以遠程鏈接 # 可選項 可以默認 [mysqld] # # * Basic Settings # max_allowed_packet = 1024M sql_mode =STRICT_TRANS_TABLES # 重啟 service mysql restart
安裝mysql++
wget https://tangentsoft.com/mysqlpp/releases/mysql++-3.2.5.tar.gz tar -zxvf ./mysql++-3.2.5.tar.gz cd mysql++-3.2.5 ./configure make make install
創建test數據庫,和abc表,可以使用 navicat,網上有安裝方式
創建c++項目,使用Clion 選擇c++17
#include <iostream> #include <mysql++/mysql++.h> int main() { const char* db = nullptr, *server = nullptr, *user = nullptr, *password = ""; db = "test"; server = "localhost"; user = "root"; password = "7355608"; mysqlpp::Connection conn(false); if (conn.connect(db, server, user, password)){ std::cout << "Hello, MySQL!" << std::endl; std::cout << "connect db succeed. " <<std::endl; mysqlpp::Query query = conn.query("SELECT * FROM abc"); if (mysqlpp::StoreQueryResult res = query.store()) { std::cout.setf(std::ios::left); std::cout << std::setw(31) << "name" << std::setw(10) << "age" << std::endl; mysqlpp::StoreQueryResult::const_iterator it; for (it = res.begin(); it != res.end(); ++it) { mysqlpp::Row row = *it; std::cout << std::setw(31) << row[0] << std::setw(10) << row[1] << std::endl; } } } return 0; }
CMakeLists.txt 編寫
cmake_minimum_required(VERSION 3.17) project(sboost) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_COMPILER "g++") include_directories(/usr/include/mysql) include_directories(/usr/local/include/mysql++) add_executable(sboost main.cpp) target_link_libraries(sboost mysqlpp)
完結!