【问题标题】:C++ terminate called after throwing an instance of 'std::length_error', what(): basic_string::_M_create抛出“std::length_error”实例后调用 C++ 终止,what(): basic_string::_M_create
【发布时间】:2016-06-28 07:42:03
【问题描述】:

在 Ubuntu 16.04 下运行时出现以下错误。

抛出 'std::length_error' 的实例后调用 C++ 终止,what(): basic_string::_M_create

当我在 Ubuntu 15.04 下运行时,代码运行良好。

gdb 跟踪我已将其隔离为以下代码: http://imgur.com/ibvFx4B

连接周围的某个地方会产生错误。

#define DBHOST "tcp://127.0.0.1:3306"
#define USER "root"
#define PASSWORD " "
#define DATABASE "db_mmofps"

void CDBMySQL::Connect()
{
     m_driver = mysql::get_mysql_driver_instance();
     m_con = m_driver->connect(DBHOST, USER, PASSWORD);
     m_con->setSchema(DATABASE);
 }

任何想法为什么它会抛出错误?这很简单,我确信我忽略了。

【问题讨论】:

  • 您是否尝试设置除空格以外的密码?
  • 密码应该为空,我将 mysql 设置为 root,密码为空。当我在没有空格的情况下将其设为“”时,这是同样的错误。谢谢。
  • 我建议将其转换为 1234,例如,以确保错误不是来自格式错误的密码
  • 尝试使用通用密码重新安装,但仍然出现 length_error 错误。

标签: c++ string mysql-connect


【解决方案1】:

解决了这个问题。 libmysqlcppconn 库需要从 Ubuntu 15.04 中的工作库中替换。希望这可以省去一些人的头疼。

【讨论】:

    猜你喜欢
    • 2022-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多