简体   繁体   English

MariaDB 连接器 c ++ memory 保护违规

[英]MariaDB connector c ++ memory protection violation

I am having a problem connecting to the database using MariaDB.我在使用 MariaDB 连接到数据库时遇到问题。 When I try to do anything with conn, it prints a memory violation.当我尝试对 conn 做任何事情时,它会打印出 memory 违规。 I use Linux Mint 20.1!!我使用 Linux Mint 20.1!!

#include <iostream>
#include <memory>
#include <mariadb/conncpp.hpp>

int main(int argc, char**argv)
{
      sql::Driver* driver = sql::mariadb::get_driver_instance();

      sql::SQLString url("///");
      sql::SQLString base("///");
      std::cout << driver->getName() << std::endl;
      sql::Properties properties({
            {"base", "base"},
            {"password", "password"}
         });

      sql::Connection*conn = driver->connect(url,properties);
      conn->setSchema(base);// here
}

Does anyone know what the problem is?有谁知道问题是什么? Thank you in advance for your help.预先感谢您的帮助。

driver->connect may return nullptr. driver->connect 可能返回 nullptr。 I guess that is happening.我想这正在发生。 You don't check conn.你不检查conn。 There is also DriverManager::getConnection, that unlike Driver::connect will throw an exception in such case.还有 DriverManager::getConnection,与 Driver::connect 不同,在这种情况下会抛出异常。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM