正确安装MySQL8.0
安装boost库
sudo apt-get install libboost-all-dev
安装 C++Connector 库
https://dev.mysql.com/downloads/connector/cpp/
我用的是上面的前三个包,
dpkg -i 文件名.deb
注意-dev包最后一个安装
Makefile
MYSQL_CONCPP_DIR= /usr
CPPFLAGS = -I $(MYSQL_CONCPP_DIR)/include -L $(MYSQL_CONCPP_DIR)/lib64
LDLIBS = -lmysqlcppconn8
CXXFLAGS = -std=c++11
app : app.cc
app.cc
#include <iostream>
#include<mysql-cppconn-8/mysqlx/xdevapi.h>
#include<mysql-cppconn-8/mysqlx/xapi.h>
using namespace mysqlx;
void ptUser() {
using std::cout;
using std::endl;
using std::vector;
try {
const char* url = "mysqlx://mazamu:aaa@127.0.0.1:33060/webserver?ssl-mode=disabled";
//注意 mysqlcppconn8 默认使用的端口:33060,若连接3306端口会提示错误
//使用用户名:mazamu
//用户 root 的密码是:aaa
//主机:127.0.0.1
//端口:33060
//数据库:webserver
cout << "Creating session on " << url
<< " ..." << endl;
SessionSettings option("127.0.0.1", 33060, "mazamu", "aaa");
Session sess(option); //也可使用这种方式连接
//Session sess(url); 第一种方式建立连接
cout <<"Done!" <<endl;
cout <<"Session accepted, creating collection..." <<endl;
sess.sql("use webserver").execute(); //使用数据库 webserver
//如何存取时间类型值,在 mysqlcppconn8 中并没有很好的规定
//注意,我们在此处将字符串转为 timestamp 类型,以插入该条数据
sess.sql(R"(insert into user (`username`, `email`, `password`, `create_time`) values
('ice', 'kawaii@qq.com', '654321', timestamp('2020-06-14 17:00:00')))"
).execute();
//注意,我们在此处 timestamp 类型转换为字符串,以取出该条数据
RowResult rs = sess.sql("select username, email, password, cast(create_time as char) from user").execute();
for (auto it = rs.begin();it != rs.end();++it){
cout << (*it).get(0).get<string>() <<" ";
cout << (*it).get(1).get<string>() <<" ";
cout << (*it).get(2).get<string>() <<" ";
cout << (*it).get(3).get<string>();
cout << endl;
}
} catch (const Error& e) {
cout << e.what() <<endl;
}
}
int main()
{
ptUser();
return 0;
}
然后
make app
./app
运行成功结果
root@iZwz99maqk0p1ov6x15rytZ:~/demo/db-playground/C++# ./app
Creating session on mysqlx://mazamu:aaa@127.0.0.1:33060/webserver?ssl-mode=disabled ...
Done!
Session accepted, creating collection...
ice kawaii@qq.com 654321 2020-06-14 17:00:00
test test@163.com testpwd 2021-10-09 15:56:39