日期:2014-05-16  浏览次数:20746 次

关于load data local infile和数据库版本的问题
编了个连数据库的应用程序,用了libmysqlclient.so.15,要从客户端服务器连接数据库服务器执行“load data local infile”语句的时候,总是报“The used command is not allowed with this MySQL version”。

网上查了,可能是版本或者配置文件的问题,我在客户端机器和数据库机都装了mysql5.1.58了,然后两边配置文件的[client]中都加了local-infile=1并重启了,按说头文件和libmysqlclient.so.15应该也都更新到5.1.58版了(客户机也更新了这个so了),并且在构造函数中也加了mysql_options(&mysql, MYSQL_OPT_LOCAL_INFILE, "1"); 

重新编译以后,运行show variables like '%local-infile%',结果是“on”,运行“show variables like ‘%version%’”,结果也是5.1.58,
但一运行"load data local infile"还是提示这个错误,很郁闷,不知为啥,我直接通过mysql -h服务器ip 这样登陆进去执行该语句已经正常了!

所以我也还是怀疑是我编译时候的问题,有没有什么sql语句可以查看当前调用的客户端的版本的?

求各位大神帮忙~~

PS:请别说让我用mysql -e 'load data local infile'之类的,因为这个程序不止用在这里了,这样做没法根本解决问题

------解决方案--------------------
难道除了select update insert delete 别的语句都不能用?