使用isql链接产生core文件

isql链接数据库产生core文件

  • 使用普通用户执行
bash 复制代码
[test@test ~]$ isql  -v freeswitch
Segmentation fault (core dumped)
  • 解析core文件
csharp 复制代码
[test@test~]$ gdb /bin/isql isql.core.122335 
GNU gdb (GDB) Red Hat Enterprise Linux 7.6.1-120.el7
Copyright (C) 2013 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-redhat-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /usr/bin/isql...Reading symbols from /usr/bin/isql...(no debugging symbols found)...done.
(no debugging symbols found)...done.
[New LWP 122335]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
Core was generated by `isql -v freeswitch'.
Program terminated with signal 11, Segmentation fault.
#0  0x00007f1ae180edec in freelocale () from /lib64/libc.so.6
Missing separate debuginfos, use: debuginfo-install unixODBC-2.3.1-14.el7.x86_64
(gdb) bt
#0  0x00007f1ae180edec in freelocale () from /lib64/libc.so.6
#1  0x00007f1ada501fe1 in myodbc_init() () from /usr/lib64/libmyodbc8a.so
#2  0x00007f1ada505afc in my_SQLAllocEnv(void**) () from /usr/lib64/libmyodbc8a.so
#3  0x00007f1ada506dff in SQLAllocHandle () from /usr/lib64/libmyodbc8a.so
#4  0x00007f1ae242b8c9 in __connect_part_one () from /lib64/libodbc.so.2
#5  0x00007f1ae242daf7 in SQLConnect () from /lib64/libodbc.so.2
#6  0x0000000000402809 in main ()
  • 使用root能正常链接isql
sql 复制代码
[root@test ~]# isql  -v freeswitch
+---------------------------------------+
| Connected!                            |
|                                       |
| sql-statement                         |
| help [tablename]                      |
| quit                                  |
|                                       |
+---------------------------------------+
SQL> show tables;
+-----------------------------------------------------------------+
| Tables_in_freeswitch                                            |
+-----------------------------------------------------------------+
| t_s_number                                                      |
| users                                                           |
+-----------------------------------------------------------------+
SQLRowCount returns 2
2 rows fetched

问题原因

  • root和普通用户区别: 新部署服务添加过环境变量有指定字符集
bash 复制代码
[root@test ~]# echo $LANG
en_US.UTF-8

[test@test ~]$ echo $LANG
zh_CN.GB1803

解决方法

  • 在网上查询ODBC 驱动或库的兼容性问题特别是 MySQL ODBC 驱动在处理 GB18030 时可能出现问题
  • 把指定的字符集设置为en_US.UTF-8即可。
相关推荐
sophie旭2 小时前
一道面试题,开始性能优化之旅(8)-- 构建工具和性能
前端·面试·性能优化
市民中心的蟋蟀2 小时前
第三章 钩入React 【上】
前端·react.js·架构
Holin_浩霖2 小时前
为什么typeof null 返回 "object" ?
前端
PanZonghui2 小时前
Zustand 实战指南:从基础到高级,构建类型安全的状态管理
前端·react.js
PanZonghui2 小时前
Vite 构建优化实战:从配置到落地的全方位性能提升指南
前端·react.js·vite
_extraordinary_3 小时前
Java Linux --- 基本命令,部署Java web程序到线上访问
java·linux·前端
用户1456775610373 小时前
推荐一个我私藏的电脑神器:小巧、无广、功能强到离谱
前端
用户1456775610373 小时前
终于找到了!一个文件搞定PDF阅读
前端
liangshanbo12153 小时前
React 18 的自动批处理
前端·javascript·react.js
一位搞嵌入式的 genius3 小时前
前端实战开发(二):React + Canvas 网络拓扑图开发:6 大核心问题与完整解决方案
前端·前端框架