2014-09-01 96 views
1

我试图在MySql上创建一个表,指定DATAINDEX DIRECTORY命令。问题是我的服务器是Windows平台。MySql(Windows服务器) - 在特定文件夹中创建表

当我尝试:

CREATE TABLE db.tb (tb_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY) DATA DIRECTORY 'd:\Abc'; 

它给了我一个错误。

Error Code: 1210. Incorrect arguments to DATA DIRECTORY 
+0

可能的重复http://stackoverflow.com/questions/12143561/data-directory-mysql – 2014-09-01 19:56:54

+0

您在分配数据目录时也缺少'='符号。 – 2014-09-01 20:00:08

+0

“\”是[esacpe chaacter](http://dev.mysql.com/doc/refman/5.0/en/string-literals.html),所以请尝试:'... DATA DIRECTORY'd:\\ Abc ';' – Rimas 2014-09-01 20:21:58

回答

2

你的说法应该是

CREATE TABLE db.tb (
    tb_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY 
) 
ENGINE=InnoDB 
DATA DIRECTORY='d:/Abc'; 

CREATE TABLE db.tb (
    tb_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY 
) 
ENGINE=InnoDB 
DATA DIRECTORY='d:\\Abc'; 

因为写在字符串中的反斜杠你得加倍,你失踪了=也为赛义德阿里塔奇提到。

您应该检查innodb_file_per_table配置选项启用:

SELECT @@innodb_file_per_table; -- should return 1 

Documentation

注:

在InnoDB中INDEX DIRECTORY的情况下,将不再需要,因为.idb文件包含数据和索引,see manual

使用文件按表格模式创建的每个InnoDB表会在数据库 目录内进入其 自己的表空间文件,其扩展名为.ibd。该文件包含表格数据和 表格的所有索引。由innodb_file_per_table 选项控制的文件按表模式影响InnoDB存储使用情况和性能的许多方面, 并且在MySQL 5.6.7和更高版本中默认启用。

+0

我现在试一试,并回答它是否有效。 – SammuelMiranda 2014-09-02 11:20:21

+0

我曾与“\\”合作过。另外,DATA DIRECTORY参数正确保存,我收到“选项忽略”的响应。你知道为什么吗? – SammuelMiranda 2014-09-02 12:10:19

+0

InnoDB不需要,因为'.idb'文件同时包含:数据和索引,请参阅(http://dev.mysql.com/doc/refman/5.6/en/glossary.html#glos_ibd_file):*每个使用file-per-table模式创建的InnoDB表进入它自己的表空间文件,其数据库目录中的扩展名为.ibd。该文件包含表格数据和表格的所有索引。由innodb_file_per_table选项控制的文件按表模式影响InnoDB存储使用情况和性能的许多方面,并且默认情况下在MySQL 5.6.7和更高版本中启用* – VMai 2014-09-02 14:25:08

相关问题