在Linux上有与Mariadb 10兼容的ODBC驱动程序吗?

我试图使用MySQL的ODBC驱动程序,但是当我编译时,导致一个错误。 MySQL的ODBC驱动程序是罚款与Mariadb 5.5,但不是Mariadb 10.那么是否有Mariadb 10的ODBC驱动程序?

我安装了MySQL Connector ODBC Driver源代码版本。

以下是错误消息:

* MySQL Connector ODBC Driver 5.3.4 Scanning dependencies of target myodbc5a [ 6%] Building C object driver/CMakeFiles/myodbc5a.dir/catalog.co [ 7%] Building C object driver/CMakeFiles/myodbc5a.dir/catalog_no_i_s.co /myodbc/mysql-connector-odbc-5.3.4-src/driver/catalog_no_i_s.c:1096:69: error: macro "my_init_dynamic_array" requires 5 arguments, but only 4 given /myodbc/mysql-connector-odbc-5.3.4-src/driver/catalog_no_i_s.c: In function 'foreign_keys_no_i_s': /myodbc/mysql-connector-odbc-5.3.4-src/driver/catalog_no_i_s.c:1096: error: 'my_init_dynamic_array' undeclared (first use in this function) /myodbc/mysql-connector-odbc-5.3.4-src/driver/catalog_no_i_s.c:1096: error: (Each undeclared identifier is reported only once /myodbc/mysql-connector-odbc-5.3.4-src/driver/catalog_no_i_s.c:1096: error: for each function it appears in.) make[2]: *** [driver/CMakeFiles/myodbc5a.dir/catalog_no_i_s.co] 오류 1 make[1]: *** [driver/CMakeFiles/myodbc5a.dir/all] 오류 2 make: *** [all] 오류 2 * MySQL Conncector ODBC Driver 5.2.7 [ 5%] Built target myodbc-util Scanning dependencies of target myodbc5a [ 6%] Building C object driver/CMakeFiles/myodbc5a.dir/catalog.co [ 8%] Building C object driver/CMakeFiles/myodbc5a.dir/catalog_no_i_s.co /myodbc/mysql-connector-odbc-5.2.7-src/driver/catalog_no_i_s.c:1096:69: error: macro "my_init_dynamic_array" requires 5 arguments, but only 4 given /myodbc/mysql-connector-odbc-5.2.7-src/driver/catalog_no_i_s.c: In function 'foreign_keys_no_i_s': /myodbc/mysql-connector-odbc-5.2.7-src/driver/catalog_no_i_s.c:1096: error: 'my_init_dynamic_array' undeclared (first use in this function) /myodbc/mysql-connector-odbc-5.2.7-src/driver/catalog_no_i_s.c:1096: error: (Each undeclared identifier is reported only once /myodbc/mysql-connector-odbc-5.2.7-src/driver/catalog_no_i_s.c:1096: error: for each function it appears in.) make[2]: *** [driver/CMakeFiles/myodbc5a.dir/catalog_no_i_s.co] 오류 1 make[1]: *** [driver/CMakeFiles/myodbc5a.dir/all] 오류 2 make: *** [all] 오류 2 * MySQL Conncector ODBC Driver 5.1.13 [ 9%] Building C object driver/CMakeFiles/myodbc5.dir/ansi.co [ 11%] Building C object driver/CMakeFiles/myodbc5.dir/catalog.co [ 12%] Building C object driver/CMakeFiles/myodbc5.dir/catalog_no_i_s.co [ 14%] Building C object driver/CMakeFiles/myodbc5.dir/connect.co [ 16%] Building C object driver/CMakeFiles/myodbc5.dir/cursor.co [ 18%] Building C object driver/CMakeFiles/myodbc5.dir/desc.co /myodbc/mysql-connector-odbc-5.1.13-src/driver/desc.c:66:66: error: macro "my_init_dynamic_array" requires 5 arguments, but only 4 given /myodbc/mysql-connector-odbc-5.1.13-src/driver/desc.c: In function 'desc_alloc': /myodbc/mysql-connector-odbc-5.1.13-src/driver/desc.c:66: error: 'my_init_dynamic_array' undeclared (first use in this function) /myodbc/mysql-connector-odbc-5.1.13-src/driver/desc.c:66: error: (Each undeclared identifier is reported only once /myodbc/mysql-connector-odbc-5.1.13-src/driver/desc.c:66: error: for each function it appears in.) /myodbc/mysql-connector-odbc-5.1.13-src/driver/desc.c: In function 'MySQLSetDescField': /myodbc/mysql-connector-odbc-5.1.13-src/driver/desc.c:778: warning: cast from pointer to integer of different size /myodbc/mysql-connector-odbc-5.1.13-src/driver/desc.c:786: warning: cast from pointer to integer of different size /myodbc/mysql-connector-odbc-5.1.13-src/driver/desc.c:895:57: error: macro "my_init_dynamic_array" requires 5 arguments, but only 4 given /myodbc/mysql-connector-odbc-5.1.13-src/driver/desc.c: In function 'MySQLCopyDesc': /myodbc/mysql-connector-odbc-5.1.13-src/driver/desc.c:893: error: 'my_init_dynamic_array' undeclared (first use in this function) make[2]: *** [driver/CMakeFiles/myodbc5.dir/desc.co] 오류 1 make[1]: *** [driver/CMakeFiles/myodbc5.dir/all] 오류 2 make: *** [all] 오류 2 

Gentoo似乎有这样的补丁:

http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/dev-db/myodbc/files/5.2.7-mariadb-dynamic-array.patch?view=markup

引入问题是增加了每线程内存使用情况统计信息( https://mariadb.atlassian.net/browse/MDEV-4011 ),这需要在my_init_dynamic_array()宏中添加一个附加参数。 这个宏没有被定义为公共客户端API的一部分,但是仍然在my_sys.h头文件中公开,并且被MySQL ODBC所使用,所以这个改变在针对最近的MariaDB版本编译时破坏了ODBC代码。

替代方法是应用上面的补丁,或者切换到MariaDB ODBC驱动程序(尽管它仍处于测试阶段):

https://mariadb.com/kb/en/mariadb/client-libraries/mariadb-odbc-driver/