要在MySQL dadadir之外的位置创建单独表空间,请使用该子句:
DATA DIRECTORY = '/path'在目标目录中,MySQL会创建一个与数据库名称对应的子目录,并在其中创建新表的xx.ibd文件。在MySQL DATADIR目录中,会创建一个xx.isl文件,文件内容包含表的路径名。MySQL将’**.isl’文件视为符号链接。
示例:
# cd /data # mkdir mysqldata # chown mysql:mysql mysqldata/ root@localhost [test] 11:14:46>SHOW VARIABLES LIKE 'innodb_file_per_table'; +-----------------------+-------+ | Variable_name | Value | +-----------------------+-------+ | innodb_file_per_table | ON | +-----------------------+-------+ 1 row in set (0.00 sec) root@localhost [test] 11:14:48>create table x1(c1 int primary key) data directory = '/data/mysqldata'; Query OK, 0 rows affected (0.06 sec) # cd /data/mysqldata # ls -l total 0 drwxr-x--- 2 mysql mysql 20 Aug 10 11:15 test # cd test # ls -l total 96 -rw-r----- 1 mysql mysql 98304 Aug 10 11:15 x1.ibd # cd /data/mysql/mysql3306/data/test # ls -l total 144 -rw-r----- 1 mysql mysql 8622 Aug 9 17:03 account.frm -rw-r----- 1 mysql mysql 114688 Aug 10 09:28 account.ibd -rw-r----- 1 mysql mysql 67 Aug 7 10:15 db.opt -rw-r----- 1 mysql mysql 8556 Aug 10 11:15 x1.frm -rw-r----- 1 mysql mysql 27 Aug 10 11:15 x1.isl # cat x1.isl /data/mysqldata/test/x1.ibd也可以在创建表时指定innodb_file_per_table关键字,使用此方式创建时innodb_file_per_table参数不必启用
mysql> CREATE TABLE t2 (c1 INT PRIMARY KEY) TABLESPACE = innodb_file_per_table DATA DIRECTORY = '/data/mysqldata';转载于:https://www.cnblogs.com/wanbin/p/9514655.html
相关资源:JAVA上百实例源码以及开源项目