本文档旨在为需要安装和配置MySQL 8.3、MySQL Workbench以及C++ Connector的用户提供详细的步骤指导。在安装过程中,可能会遇到一些常见问题,如DLL文件缺失等,本指南也会提供相应的解决办法。
1.安装Mysql8.3
安装Mysql有很多教程,本人安装的为Mysql8.3版本,此版本默认安装在C盘
Mysql官方下载:MySQL :: Download MySQL Community Server
本地下载:Mysql8.3安装包资源-CSDN文库
选择8.3版本的:
推荐安装链接:Mysql 8.3 安装及环境配置教程
安装完以后一定要配置好环境!!!
2.安装Workbench
Workbench为mysqil的可视化软件,由于8.3版本并没有自带Workbench,因此需要手动安装,有一些mysql版本在安装过程中自带Workbench,则不需要重复安装。
官方下载:MySQL :: Download MySQL Workbench
本地下载:MysqlWorkbench可视化软件资源
3.配置C++ connector
接下来就是使用Visual Studio连接Mysql了,有一篇链接讲解的非常详细,完全可以按照此方法配置。VS2022配置C++ connector连接mysql
本地下载:【免费】MysqlC++connector8.3资源-CSDN文库
如果安装有问题,本文提供了已经配置好的VS项目文件,并提供了如何新建一个项目,
一共安装了这些文件,放在同一个目录里。
如果你配置不好Visual Studio环境,可以使用本人已经配置好的程序:
【免费】Mysql数据库使用,C++版本资源-CSDN文库
里面包含两个程序,分别是数据库的创建和数据库的写入(将TXT文件的内容写入到数据库)
数据库创建:
#include <jdbc/cppconn/statement.h>
#include <jdbc/cppconn/resultset.h>
#include <jdbc/cppconn/exception.h>
#include "jdbc/mysql_driver.h"
#include<windows.h>
int main() {std::string sql1 = "create database Expert";//sql1用于创建testmysql数据库SetConsoleOutputCP(CP_UTF8);try{// 注册MySQL驱动程序sql::mysql::MySQL_Driver* driver = sql::mysql::get_mysql_driver_instance();sql::Connection* con;sql::Statement* stmt;sql::ResultSet* res;//获取数据库连接对象con = driver->connect("tcp://localhost:3306", "root", "123456");//获取执行语句对象stmt = con->createStatement();stmt->execute(sql1);delete stmt;delete con;}catch (sql::SQLException& sqle){std::cout << "SQLException: " << sqle.what() << std::endl;std::cout << "SQLState: " << sqle.getSQLState() << std::endl;std::cout << "ErrorCode: " << sqle.getErrorCode() << std::endl;}return 0;
}
数据库写入:
#include <jdbc/cppconn/statement.h>
#include <jdbc/cppconn/resultset.h>
#include <jdbc/cppconn/exception.h>
#include "jdbc/mysql_driver.h"
#include <fstream>
#include <iostream>
#include <string>
#include <sstream>
using namespace std;
void insertDataFromTxt(const string& filename, sql::Connection* con) {try {// 打开文本文件ifstream file(filename);if (!file.is_open()) {cerr << "无法打开文件:" << filename << endl;return;}// 创建执行语句对象sql::Statement* stmt = con->createStatement();切换到已经创建的数据库stmt->execute("USE Expert");// 读取文件内容并插入数据库string line;while (getline(file, line)) {// 使用istringstream解析行中的五个整数istringstream iss(line);int intention, enemyNum, ourNum, ANum, BNum, CNum;if (!(iss >> intention >> enemyNum >> ourNum >> ANum>> BNum >> CNum)) {cerr << "文件格式错误:" << line << endl;continue;}// 执行插入操作string sql_insert = "INSERT INTO expert_data (intention, enemyNum, ourNum, ANum, BNum, CNum) VALUES (" +to_string(intention) + ", " +to_string(enemyNum) + ", " +to_string(ourNum) + ", " +to_string(ANum) + ", " +to_string(BNum) + ", " +to_string(CNum) + ")";stmt->execute(sql_insert);}// 关闭文件和数据库连接file.close();delete stmt;}catch (sql::SQLException& e) {cerr << "数据库操作出错:" << e.what() << endl;}}int main() {// 数据库连接参数string hostName = "tcp://localhost:3306";string userName = "root";string password = "123456";try {// 注册MySQL驱动程序sql::mysql::MySQL_Driver* driver = sql::mysql::get_mysql_driver_instance();// 获取数据库连接对象sql::Connection* con = driver->connect(hostName, userName, password);// 创建数据库sql::Statement* stmt = con->createStatement();stmt->execute("CREATE DATABASE IF NOT EXISTS Expert");delete stmt;// 创建表stmt = con->createStatement();stmt->execute("USE Expert");stmt->execute("CREATE TABLE IF NOT EXISTS expert_data (intention INT, enemyNum INT, ourNum INT, ANum INT, BNum INT, CNum INT)");delete stmt;// 将数据从文件导入到数据库insertDataFromTxt("Database.txt", con);// 关闭数据库连接delete con;}catch (sql::SQLException& e) {cerr << "数据库连接出错:" << e.what() << endl;}return 0;}
4.注意事项(Dll文件缺失解决办法)
安装过程中可能会遇到DLL文件缺失,可以参考以下教程:
电脑运行库缺失、DLL报错修复
工具下载链接:
【免费】电脑DLL文件修复工具资源-CSDN文库