c++使用mysql connector连接mysql
这次使用c++连接mysql,可以成功连接了,中间找了官方文档(mysql connector里的readme提供的网址 https://dev.mysql.com/doc/connector-cpp/en/以及百度ai提供的设置)
1 ql::ConnectOptionsMap options; 2 options["hostName"] = "localhost"; // 数据库主机地址:ml-citation{ref="8" data="citationList"} 3 options["userName"] = "root"; // 数据库账号:ml-citation{ref="8" data="citationList"} 4 options["password"] = "your_password"; // 数据库密码:ml-citation{ref="7,8" data="citationList"} 5 options["schema"] = "test_db"; // 目标数据库名称:ml-citation{ref="8" data="citationList"} 6 options["port"] = 3306; // 端口号(默认3306):ml-citation{ref="8" data="citationList"}
下面是代码:
#include <iostream> #include <exception> #include "mysql/jdbc.h" #pragma comment(lib,"mysqlcppconn.lib") using namespace sql; using namespace mysql; using namespace std; Connection* conn; Driver* driver; sql::Statement* stmt; int main() { MySQL_Driver* d = reinterpret_cast<MySQL_Driver*>(sql_mysql_get_driver_instance()); std::string host = "tcp://127.0.0.1:3306"; std::string usr = "root"; std::string pwd = "1234"; d->threadInit(); cout << d->getName().asStdString() << endl; try { ConnectOptionsMap cosMap; cosMap["userName"] = "root"; cosMap["password"] = "1234"; cosMap["hostName"] = "localhost"; cosMap["schema"] = "dbtest"; cosMap["port"] = 3306; cosMap[OPT_ENABLE_CLEARTEXT_PLUGIN] = true; cosMap[OPT_PLUGIN_DIR] = "./plugin"; //std::unique_ptr<sql::Connection> con(driver->connect(host, usr, pwd)); //conn = d->connect("127.0.0.1", "root", "1234"); conn = d->connect(cosMap); cout << "connect" << endl; stmt = conn->createStatement(); stmt->execute("USE " "dbtest"); stmt->execute("DROP TABLE IF EXISTS test23"); stmt->execute("CREATE TABLE test23(id INT, label CHAR(1))"); stmt->execute("INSERT INTO test23(id, label) VALUES (1, 'a')"); delete stmt; conn->close(); } catch (const std::exception& e) { cout << e.what() << endl; } return 0; }
浙公网安备 33010602011771号