使用mysql embedded和--local infle=1以及c++;? 我用C++的嵌入服务器(链接mymyLD)连接到mysql数据库。我有以下代码: static char *server_options[] = \ { (char *)"mysql_test", (char *)"--datadir=/home/cquiros/temp/mysql/db2", (char *)"--default-storage-engine=MyISAM", (char *)"--loose-innodb=0", (char *)"--local-infile=1", (char *)"--skip-grant-tables=1", (char *)"--myisam-recover=FORCE", (char *)"--key_buffer_size=16777216", (char *)"--character-set-server=utf8", (char *)"--collation-server=utf8_bin", NULL }; int num_elements = (sizeof(server_options) / sizeof(char *)) - 1; mysql_library_init(num_elements, server_options, NULL); m_mysql = mysql_init(NULL); char enable_load_infile = 1; if (mysql_options(m_mysql,MYSQL_OPT_LOCAL_INFILE, (const char *)&(enable_load_infile))) qDebug() << "Error setting option"; mysql_real_connect(m_mysql, NULL,NULL,NULL, "database1", 0,NULL,0); static char*server_选项[]=\ {(char*)“mysql_测试”, (char*)“--datadir=/home/cquiros/temp/mysql/db2”, (char*)“--默认存储引擎=MyISAM”, (char*)“--loose innodb=0”, (char*)“--local infle=1”, (char*)“--skip grant tables=1”, (char*)“--myisam recover=FORCE”, (字符*)“--key_buffer_size=16777216”, (字符*)“--字符集服务器=utf8”, (char*)“--collation server=utf8\u bin”, 空}; int num_elements=(sizeof(服务器选项)/sizeof(字符*)-1; mysql_库_init(num_元素,服务器选项,NULL); m_mysql=mysql_init(NULL); 字符启用\加载\填充=1; if(mysql_选项(m_mysql、mysql_OPT_LOCAL_infle、(const char*)和(enable_load_infle))) qDebug()

使用mysql embedded和--local infle=1以及c++;? 我用C++的嵌入服务器(链接mymyLD)连接到mysql数据库。我有以下代码: static char *server_options[] = \ { (char *)"mysql_test", (char *)"--datadir=/home/cquiros/temp/mysql/db2", (char *)"--default-storage-engine=MyISAM", (char *)"--loose-innodb=0", (char *)"--local-infile=1", (char *)"--skip-grant-tables=1", (char *)"--myisam-recover=FORCE", (char *)"--key_buffer_size=16777216", (char *)"--character-set-server=utf8", (char *)"--collation-server=utf8_bin", NULL }; int num_elements = (sizeof(server_options) / sizeof(char *)) - 1; mysql_library_init(num_elements, server_options, NULL); m_mysql = mysql_init(NULL); char enable_load_infile = 1; if (mysql_options(m_mysql,MYSQL_OPT_LOCAL_INFILE, (const char *)&(enable_load_infile))) qDebug() << "Error setting option"; mysql_real_connect(m_mysql, NULL,NULL,NULL, "database1", 0,NULL,0); static char*server_选项[]=\ {(char*)“mysql_测试”, (char*)“--datadir=/home/cquiros/temp/mysql/db2”, (char*)“--默认存储引擎=MyISAM”, (char*)“--loose innodb=0”, (char*)“--local infle=1”, (char*)“--skip grant tables=1”, (char*)“--myisam recover=FORCE”, (字符*)“--key_buffer_size=16777216”, (字符*)“--字符集服务器=utf8”, (char*)“--collation server=utf8\u bin”, 空}; int num_elements=(sizeof(服务器选项)/sizeof(字符*)-1; mysql_库_init(num_元素,服务器选项,NULL); m_mysql=mysql_init(NULL); 字符启用\加载\填充=1; if(mysql_选项(m_mysql、mysql_OPT_LOCAL_infle、(const char*)和(enable_load_infle))) qDebug(),c++,mysql,embedded-database,C++,Mysql,Embedded Database,@QLands我知道你问这个问题已经有一年多了,但我想我会为子孙后代回答,以防像我这样的人在谷歌上搜索解决方案 我也遇到了同样的问题,在/etc/mysql/my.cfg文件中显式启用LOAD DATA LOCAL INFLE语句后,我可以从Linux mysql CLI获取LOAD DATA LOCAL INFLE语句。但是,我不能让它与MySQL C++连接器一起工作——当我通过MySQL C++连接器尝试加载一个加载数据本地加密命令时,也会得到“使用MySQL版本的命令不允许”的错误。wt

@QLands我知道你问这个问题已经有一年多了,但我想我会为子孙后代回答,以防像我这样的人在谷歌上搜索解决方案

我也遇到了同样的问题,在/etc/mysql/my.cfg文件中显式启用LOAD DATA LOCAL INFLE语句后,我可以从Linux mysql CLI获取LOAD DATA LOCAL INFLE语句。但是,我不能让它与MySQL C++连接器一起工作——当我通过MySQL C++连接器尝试加载一个加载数据本地加密命令时,也会得到“使用MySQL版本的命令不允许”的错误。wtf对吗

经过大量的搜索和查找一些技术支持的文章之后,我得出结论,MySQL C++连接器没有(出于任何原因)决定实现开发者能够允许本地IfILE=1选项的能力。显然,一些人已经能够破解/叉MySQL C++连接器来公开功能,但没有人发布他们的源代码——只说它是有效的。显然,在初始化连接后,MySQL C API中有一个解决方案,您可以使用:

mysql_options( &mysql, MYSQL_OPT_LOCAL_INFILE, 1 );
以下是一些参考文章,让我得出这个结论:

1.)

(二)

(三)

本质上,如果您希望使用负载数据本地的本地功能,则必须使用MySQL C API或从命令行执行或使用现有的MySQL C++ API来破解连接结构。


:(

@QLands我意识到你问这个问题已经一年多了,但我想我会为子孙后代回答,以防像我这样的人在谷歌上搜索解决方案

我有同样的问题,我可以从LINUX MySQL CLI中获得加载数据本地的INFILE语句,在我明确地在/ETC/MySQL/my.CFG文件中启用它之后,但是我不能使它与MySQL C++连接器一起工作——我也得到了错误:“使用这个MySQL版本的命令是不允许的”当我尝试通过MySQL C++连接器运行加载数据本地加密命令时,WTF对?

经过大量的搜索和查找一些技术支持的文章后,我得出结论:MySQL C++连接器没有(不管什么原因)决定执行开发者允许本地FILILE=1选项的能力。显然,有些人已经能够破解/叉MySQL C++连接器来公开功能,但是没有人发布他们的源代码——只说它是有效的。显然,在初始化连接之后,MySQL C API中存在一个解决办法。您可以使用以下命令:

mysql_options( &mysql, MYSQL_OPT_LOCAL_INFILE, 1 );
以下是一些参考文章,让我得出这个结论:

1.)

(二)

(三)

本质上,如果您希望使用负载数据本地的本地功能,则必须使用MySQL C API或从命令行执行或使用现有的MySQL C++ API来破解连接结构。 :(