CREATE TABLE test_partition(
id INT NOT NULL,
name VARCHAR(16) NOT NULL,
PRIMARY KEY(id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
partition by hash (id) partitions 3(
partition p0
data directory='D:/data'
index directory='D:/idx',
partition p1
data directory='E:/data'
index directory='E:/idx',
partition p2
data directory='F:/data'
index directory='F:/idx'
);如上,创建分区,插入数据,为何在相应的磁盘路径下找不到文件
解决方案 »
补充下,我的mysql版本是5.5,windows下面
Query OK, 0 rows affected, 6 warnings (0.48 sec)mysql> show warnings;
+---------+------+----------------------------------+
| Level | Code | Message |
+---------+------+----------------------------------+
| Warning | 1618 | <DATA DIRECTORY> option ignored |
| Warning | 1618 | <INDEX DIRECTORY> option ignored |
| Warning | 1618 | <DATA DIRECTORY> option ignored |
| Warning | 1618 | <INDEX DIRECTORY> option ignored |
| Warning | 1618 | <DATA DIRECTORY> option ignored |
| Warning | 1618 | <INDEX DIRECTORY> option ignored |
+---------+------+----------------------------------+
6 rows in set (0.00 sec)
DATA DIRECTORY, INDEX DIRECTORY 通过使用DATA DIRECTORY='directory'或INDEX DIRECTORY='directory',您可以指定MyISAM存储引擎放置表格数据文件和索引文件的位置。注意,目录应是通向目录的完整路径(不是相对路径)。仅当您没有使用--skip-symbolic-links选项时,DATA DIRECTORY, INDEX DIRECTORY才能使用。操作系统必须有一个正在工作的、线程安全的realpath()调用。
不是很懂,"操作系统必须有一个正在工作的、线程安全的realpath()调用",这个是说要在linux下面么
/dev/sda3 20G 473M 19G 3% /usr/local
/dev/sda4 103G 23G 75G 24% /data比如他说要分区到不同的磁盘上,那是不是路径写成
'/usr/local/data0/data'
'/usr/local/data0/index'
'/data/data1/data'
'/data/data1/index'
刚刚在linux上没看到警告,不知道windows上怎么配
后来发现,如果要分到不同的硬盘上,不能是innoDB
--转自