多线程连接mysql出现段错误

tc199604 2018-01-11 01:27:43
在多线程中实例化mysql,连接时出现段错误,具体情况如下:
*/初始化mysqlmanager
MysqlManager(const string &_connect_url, bool _autocommit = true, bool _auto_reconect = false) {
this->connect_url = _connect_url;
this->autocomit = _autocommit;
this->auto_reconect = _auto_reconect;
this->conn = nullptr;
}
//连接到数据库
void connect(const string &_userName, const string &_password) {
mysql::MySQL_Driver *driver;
// 初始化驱动
driver = sql::mysql::get_mysql_driver_instance();
// 建立链接
ConnectOptionsMap options;
options["hostName"] = this->connect_url;
options["userName"] = _userName;
options["password"] = _password;
options["OPT_RECONNECT"] = this->auto_reconect;
options["OPT_CHARSET_NAME"] = "utf8";

this->conn = driver->connect(options);
this->conn->setAutoCommit(this->autocomit);

cout << "connect mysql:"<<this->connect_url << endl;
}

多线程中:
MysqlManager *mysql = new MysqlManager(MYSQL_URL);
mysql->connect(MYSQL_USERNAME, MYSQL_PASSWORD);//此处出现段错误
mysql版本为5.6.33 MySQL
...全文
1091 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
吉普赛的歌 2018-01-11
  • 打赏
  • 举报
回复
恭喜
tc199604 2018-01-11
  • 打赏
  • 举报
回复
已经解决了,要保证主进程中先连接到数据库,线程就可以连接了。
OwenZeng_DBA 2018-01-11
  • 打赏
  • 举报
回复
此处出现段错误?什么错误呢

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧