使用isql链接产生core文件

发布于:2025-08-06 ⋅ 阅读:(16) ⋅ 点赞:(0)

isql链接数据库产生core文件

  • 使用普通用户执行
[test@test ~]$ isql  -v freeswitch
Segmentation fault (core dumped)
  • 解析core文件
[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
[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和普通用户区别: 新部署服务添加过环境变量有指定字符集
[root@test ~]# echo $LANG
en_US.UTF-8

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

解决方法

  • 在网上查询ODBC 驱动或库的兼容性问题特别是 MySQL ODBC 驱动在处理 GB18030 时可能出现问题
  • 把指定的字符集设置为en_US.UTF-8即可。

网站公告

今日签到

点亮在社区的每一天
去签到