【发布时间】:2011-12-27 17:34:17
【问题描述】:
我正在使用 C++ 中的嵌入服务器(链接到 mysqld)连接到 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);
连接有效,我可以查询和创建表,但是,当我尝试执行“加载数据本地 infile ...”时,即使我正在设置,我总是得到“此 MySQL 版本不允许使用的命令” - -local-infile=1 在服务器选项中或在代码中设置它:
char enable_load_infile = 1;
if (mysql_options(m_mysql,MYSQL_OPT_LOCAL_INFILE, (const char *)&(enable_load_infile)))
qDebug() << "Error setting option";
知道我做错了什么以及如何解决吗?
非常感谢您的帮助。 卡洛斯。
【问题讨论】:
标签: c++ mysql embedded-database