Ubuntu 安装MysqlConnector

在mysql官网 MysqlConnectorCpp 找到Connector/C++ 的下载页面,根据自己的操作系统及系统版本号筛选。我这里用的是Ubuntu Linux 20.04。

筛选出来发现下载列表有不少,我先下载了 libmysqlcppconn-dev_8.0.31-1ubuntu20.04_amd64.deb 这个文件,拷贝到linux系统目录,执行命令: 

sudo dpkg -i libmysqlcppconn-dev_8.0.31-1ubuntu20.04_amd64.deb

结果报错:

[ams@ubuntu:~/Download]$ sudo dpkg -i libmysqlcppconn-dev_8.0.31-1ubuntu20.04_amd64.deb 
正在选中未选择的软件包 libmysqlcppconn-dev:amd64。
(正在读取数据库 ... 系统当前共安装有 159483 个文件和目录。)
准备解压 libmysqlcppconn-dev_8.0.31-1ubuntu20.04_amd64.deb  ...
正在解压 libmysqlcppconn-dev:amd64 (8.0.31-1ubuntu20.04) ...
dpkg: 依赖关系问题使得 libmysqlcppconn-dev:amd64 的配置工作不能继续:
 libmysqlcppconn-dev:amd64 依赖于 libmysqlcppconn9 (= 8.0.31-1ubuntu20.04);然而:
  未安装软件包 libmysqlcppconn9。
 libmysqlcppconn-dev:amd64 依赖于 libmysqlcppconn8-2 (= 8.0.31-1ubuntu20.04);然而:
  未安装软件包 libmysqlcppconn8-2。

dpkg: 处理软件包 libmysqlcppconn-dev:amd64 (--install)时出错:
 依赖关系问题 - 仍未被配置
在处理时有错误发生:
 libmysqlcppconn-dev:amd64

这个软件包依赖于 libmysqlcppconn9 与 libmysqlcppconn8-2,在刚才mysql的Ubuntu系统的下载页面能够找到这两个包,于是下载这两个包后,先安装这俩。

[ams@ubuntu:~/Download]$ sudo dpkg -i libmysqlcppconn8-2_8.0.31-1ubuntu20.04_amd64.deb 
正在选中未选择的软件包 libmysqlcppconn8-2:amd64。
(正在读取数据库 ... 系统当前共安装有 159554 个文件和目录。)
准备解压 libmysqlcppconn8-2_8.0.31-1ubuntu20.04_amd64.deb  ...
正在解压 libmysqlcppconn8-2:amd64 (8.0.31-1ubuntu20.04) ...
dpkg: 依赖关系问题使得 libmysqlcppconn8-2:amd64 的配置工作不能继续:
 libmysqlcppconn8-2:amd64 依赖于 mysql-community-client-plugins;然而:
  未安装软件包 mysql-community-client-plugins。

dpkg: 处理软件包 libmysqlcppconn8-2:amd64 (--install)时出错:
 依赖关系问题 - 仍未被配置
正在处理用于 libc-bin (2.31-0ubuntu9.7) 的触发器 ...
在处理时有错误发生:
 libmysqlcppconn8-2:amd64
[ams@ubuntu:~/Download]$ sudo dpkg -i libmysqlcppconn9_8.0.31-1ubuntu20.04_amd64.deb 
正在选中未选择的软件包 libmysqlcppconn9:amd64。
(正在读取数据库 ... 系统当前共安装有 159564 个文件和目录。)
准备解压 libmysqlcppconn9_8.0.31-1ubuntu20.04_amd64.deb  ...
正在解压 libmysqlcppconn9:amd64 (8.0.31-1ubuntu20.04) ...
正在设置 libmysqlcppconn9:amd64 (8.0.31-1ubuntu20.04) ...
正在处理用于 libc-bin (2.31-0ubuntu9.7) 的触发器 ...

一个成功了,一个失败。看到错误信息是 libmysqlcppconn8-2:amd64 依赖于 mysql-community-client-plugins

然而在刚才的下载页面没有找到 mysql-community-client-plugins 的相关下载。

回到下载首页,能看到跟community相关的有一个 Mysql Community Server,点进去后选好操作系统与版本号,搜了一下,找到了 mysql-community-client-plugins 的下载包:mysql-community-client-plugins_8.0.31-1ubuntu20.04_amd64.deb。

下载后依次安装:

[ams@ubuntu:~/Download]$ sudo dpkg -i mysql-community-client-plugins_8.0.31-1ubuntu20.04_amd64.deb 
正在选中未选择的软件包 mysql-community-client-plugins。
(正在读取数据库 ... 系统当前共安装有 159574 个文件和目录。)
准备解压 mysql-community-client-plugins_8.0.31-1ubuntu20.04_amd64.deb  ...
正在解压 mysql-community-client-plugins (8.0.31-1ubuntu20.04) ...
正在设置 mysql-community-client-plugins (8.0.31-1ubuntu20.04) ...
正在处理用于 libc-bin (2.31-0ubuntu9.7) 的触发器 ...
[ams@ubuntu:~/Download]$ sudo dpkg -i libmysqlcppconn8-2_8.0.31-1ubuntu20.04_amd64.deb 
(正在读取数据库 ... 系统当前共安装有 159585 个文件和目录。)
准备解压 libmysqlcppconn8-2_8.0.31-1ubuntu20.04_amd64.deb  ...
正在解压 libmysqlcppconn8-2:amd64 (8.0.31-1ubuntu20.04) 并覆盖 (8.0.31-1ubuntu20.04) ...
正在设置 libmysqlcppconn8-2:amd64 (8.0.31-1ubuntu20.04) ...
正在处理用于 libc-bin (2.31-0ubuntu9.7) 的触发器 ...
[ams@ubuntu:~/Download]$ sudo dpkg -i libmysqlcppconn-dev_8.0.31-1ubuntu20.04_amd64.deb 
(正在读取数据库 ... 系统当前共安装有 159585 个文件和目录。)
准备解压 libmysqlcppconn-dev_8.0.31-1ubuntu20.04_amd64.deb  ...
正在解压 libmysqlcppconn-dev:amd64 (8.0.31-1ubuntu20.04) 并覆盖 (8.0.31-1ubuntu20.04) ...
正在设置 libmysqlcppconn-dev:amd64 (8.0.31-1ubuntu20.04) ...

都安装成功。

使用C++代码测试:

编译、链接、运行结果都正确。

#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 

using namespace std;
using namespace sql;
using namespace sql::mysql;

int main()
{
	Driver* driver = sql::mysql::get_driver_instance();
	string host = "tcp://192.168.2.238:3306/Test";
	string user = "test";
	string passwd = "test";
	Connection* conn = driver->connect(host, user, passwd);
	PreparedStatement* state = conn->prepareStatement("insert into t_AuthorizedSoftware Values(?, ?, ?);");
	PreparedStatement* state2 = conn->prepareStatement("replace into t_AuthorizedSoftware Values(?, ?, ?);");
	PreparedStatement* state3 = conn->prepareStatement("delete from t_AuthorizedSoftware where Account = ? and Software = ?;");
	//state: insert into
	state->setString(1, "100");
	state->setString(2, "100");
	state->setInt(3, 100);
	state->execute();

	state->setString(1, "101");
	state->setString(2, "101");
	state->setInt(3, 101);
	state->execute();

	state->setString(1, "102");
	state->setString(2, "102");
	state->setInt(3, 102);
	state->execute();

	//state2:replace into
	state2->setString(1, "102");
	state2->setString(2, "103");
	state2->setInt(3, 102);
	state2->execute();
	conn->commit();

	//state3:delete
	state3->setInt(1, 100);
	state3->setString(2, "100");
	state3->execute();

	state3->setInt(1, 101);
	state3->setString(2, "101");
	state3->execute();

	state3->setInt(1, 102);
	state3->setString(2, "102");
	state3->execute();

	return 0;
}

你可能感兴趣的:(紫云的程序人生,SQL,C++,ubuntu,Mysql)