source

mariadb odbc가 잘못된 포인터 오류를 발생시킵니다.

itover 2022. 12. 11. 10:20
반응형

mariadb odbc가 잘못된 포인터 오류를 발생시킵니다.

Fedora 21에 MariaDB가 설치되어 있습니다(Fedora 설치의 일부).ODBC도 설치됩니다.단, ODBC 설정을 테스트하려고 할 때(또는 Asterisk가 ODBC를 사용하려고 할 때) free(): invalid 포인터에 오류가 나타납니다.

odbc inst.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에서도 같은 문제가 발생했습니다.

해결 방법은 새로운 버전을 설치하는 것이었습니다(루트로 로그인).

1 실제 odbc-version 삭제 (기억이 잘 나면 5.2.2)

yum remove mysql-connector-odbc

2 최신 버전의 mysql-mysql-mysql-5.3.4-1.x86_64.rpm을 검색합니다(서브스크라이브가 필요합니다).

yum localinstall --nogpgcheck mysql-connector-odbc-5.3.4-1.x86_64.rpm

unixODBC가 /usr/lib64/libmyodbc5w가 아닌 /usr/lib64/libmyodbc5.so을 가리키기 때문에 3개의 심볼릭링크가 생성됩니다.그렇게

ln -s /usr/lib64/libmyodbc5w.so  /usr/lib64/libmyodbc5.so 

4 필요한 경우 수정하는 것을 잊지 마십시오(~/.ini).

.....
Driver64=/usr/lib64/libmyodbc5w.so 
....

이게 로만에게 도움이 되길 바란다.

언급URL : https://stackoverflow.com/questions/28130709/mariadb-odbc-throws-invalid-pointer-error

반응형