mariadb odbc 抛出无效指针错误
mariadb odbc throws invalid pointer error
我在 Fedora 21 上安装了 MariaDB(作为 Fedora 安装的一部分)。还安装了 ODBC。但是,当我去测试 ODBC 配置时(或者当 Asterisk 尝试使用 ODBC 时)我在 free():invalid pointer.
中得到一个错误
odbcinst.ini
[MySQL]
Description=ODBC for MySQL
Driver=/usr/lib64/libmyodbc5.so
Setup=/usr/lib64/libodbcmyS.so
FileUsage=1
UsageCount=2
odbc.ini
[asterisk]
Description=MySQL connection to 'asterisk' database
Driver=MySQL
Database=asteriskdb
Server=localhost
UserName=<theusername>
Password=<thepassword>
Port=3306
Socket=/var/lib/mysql/mysql.sock
使用这些凭据使用 mysql 连接到数据库工作得很好。但是正在做:
echo "select 1"|isql -v asterisk theusername thepassword
结果:
*** Error in `isql': free(): invalid pointer: 0x00000000011c4e58 ***
======= Backtrace: =========
/lib64/libc.so.6(+0x7850e)[0x7fdd0ef7850e]
/lib64/libc.so.6(cfree+0x5b5)[0x7fdd0ef84165]
/usr/lib64/libmyodbc5.so(MySQLGetPrivateProfileStringW+0x132)[0x7fdd083381c2]
/usr/lib64/libmyodbc5.so(ds_lookup+0x5d)[0x7fdd08336c3d]
/usr/lib64/libmyodbc5.so(MySQLConnect+0xbe)[0x7fdd08316a1e]
/lib64/libodbc.so.2(SQLConnect+0x9e5)[0x7fdd0fb41745]
isql[0x402908]
/lib64/libc.so.6(__libc_start_main+0xf0)[0x7fdd0ef1ffe0]
isql[0x402c31]
======= Memory map: ========
如果对任何人有帮助,我可以提供其余的核心转储。
对于造成这种情况的原因以及如何预防有什么建议吗?我需要 ODBC 工作。
我的 F21 86_64 也遇到了同样的问题。
我的解决方案是安装更新版本(以 root 身份登录):
1 删除实际的 odbc 版本(如果我没记错的话是 5.2.2)
yum remove mysql-connector-odbc
2 在以下位置搜索 mysql-connector-odbc-5.3.4-1.x86_64.rpm) 的最新版本:
http://dev.mysql.com/get/Downloads/Connector-ODBC/5.3/mysql-connector-odbc-5.3.4-1.x86_64.rpm(需要订阅)
yum localinstall --nogpgcheck mysql-connector-odbc-5.3.4-1.x86_64.rpm
3 符号 link 创建因为 unixODBC 仍指向
/usr/lib64/libmyodbc5.so 而不是 /usr/lib64/libmyodbc5w.so
ln -s /usr/lib64/libmyodbc5w.so /usr/lib64/libmyodbc5.so
4 如果需要不要忘记修改(在 ~/.odbc.ini)
.....
Driver64=/usr/lib64/libmyodbc5w.so
....
希望对您有所帮助
罗马
我在 Fedora 21 上安装了 MariaDB(作为 Fedora 安装的一部分)。还安装了 ODBC。但是,当我去测试 ODBC 配置时(或者当 Asterisk 尝试使用 ODBC 时)我在 free():invalid pointer.
中得到一个错误odbcinst.ini
[MySQL]
Description=ODBC for MySQL
Driver=/usr/lib64/libmyodbc5.so
Setup=/usr/lib64/libodbcmyS.so
FileUsage=1
UsageCount=2
odbc.ini
[asterisk]
Description=MySQL connection to 'asterisk' database
Driver=MySQL
Database=asteriskdb
Server=localhost
UserName=<theusername>
Password=<thepassword>
Port=3306
Socket=/var/lib/mysql/mysql.sock
使用这些凭据使用 mysql 连接到数据库工作得很好。但是正在做:
echo "select 1"|isql -v asterisk theusername thepassword
结果:
*** Error in `isql': free(): invalid pointer: 0x00000000011c4e58 ***
======= Backtrace: =========
/lib64/libc.so.6(+0x7850e)[0x7fdd0ef7850e]
/lib64/libc.so.6(cfree+0x5b5)[0x7fdd0ef84165]
/usr/lib64/libmyodbc5.so(MySQLGetPrivateProfileStringW+0x132)[0x7fdd083381c2]
/usr/lib64/libmyodbc5.so(ds_lookup+0x5d)[0x7fdd08336c3d]
/usr/lib64/libmyodbc5.so(MySQLConnect+0xbe)[0x7fdd08316a1e]
/lib64/libodbc.so.2(SQLConnect+0x9e5)[0x7fdd0fb41745]
isql[0x402908]
/lib64/libc.so.6(__libc_start_main+0xf0)[0x7fdd0ef1ffe0]
isql[0x402c31]
======= Memory map: ========
如果对任何人有帮助,我可以提供其余的核心转储。
对于造成这种情况的原因以及如何预防有什么建议吗?我需要 ODBC 工作。
我的 F21 86_64 也遇到了同样的问题。
我的解决方案是安装更新版本(以 root 身份登录):
1 删除实际的 odbc 版本(如果我没记错的话是 5.2.2)
yum remove mysql-connector-odbc
2 在以下位置搜索 mysql-connector-odbc-5.3.4-1.x86_64.rpm) 的最新版本: http://dev.mysql.com/get/Downloads/Connector-ODBC/5.3/mysql-connector-odbc-5.3.4-1.x86_64.rpm(需要订阅)
yum localinstall --nogpgcheck mysql-connector-odbc-5.3.4-1.x86_64.rpm
3 符号 link 创建因为 unixODBC 仍指向 /usr/lib64/libmyodbc5.so 而不是 /usr/lib64/libmyodbc5w.so
ln -s /usr/lib64/libmyodbc5w.so /usr/lib64/libmyodbc5.so
4 如果需要不要忘记修改(在 ~/.odbc.ini)
.....
Driver64=/usr/lib64/libmyodbc5w.so
....
希望对您有所帮助 罗马