1、使用create table … data directory
1 2 3 4 5 6 7 8 9 10
| root@db 18:15: [(none)]> use test Database changed root@db 18:16: [test]> show tables; +----------------+ | Tables_in_test | +----------------+ | t1 | | t4 | +----------------+ 2 rows in set (0.00 sec)
|
指定的目录对于mysql的用户来说一定要有访问权限
1 2
| [root@dax-mysql-master test]# ll -d /tmp/ drwxrwxrwt. 10 root root 4096 2月 11 20:54 /tmp/
|
执行创建表语句
1 2
| root@db 18:41: [test]> CREATE TABLE t2 (c1 INT PRIMARY KEY) DATA DIRECTORY = '/tmp/'; Query OK, 0 rows affected (0.60 sec)
|
表创建完成之后,会在directory对应的目录下创建表对应的schema的目录,并在schema的目录下生成.ibd表文件
1 2
| [root@dax-mysql-master test]# ll /tmp/test/t2* -rw-r----- 1 mysql mysql 98304 2月 11 18:41 /tmp/test/t2.ibd
|
在mysql的数据目录下会生成.frm文件和.isl文件
1 2 3
| [root@dax-mysql-master test]# ll /data/mysql/data/test/t2* -rw-r----- 1 mysql mysql 8556 2月 11 18:41 /data/mysql/data/test/t2.frm -rw-r----- 1 mysql mysql 16 2月 11 18:41 /data/mysql/data/test/t2.isl
|
2、使用create table … tablespace .. data directory
1 2 3 4 5 6 7
| root@db 18:41: [test]> CREATE TABLE t3 (c1 INT PRIMARY KEY) TABLESPACE = innodb_file_per_table DATA DIRECTORY = '/tmp'; Query OK, 0 rows affected (0.33 sec) [root@dax-mysql-master test]# ll /tmp/test/t3* -rw-r----- 1 mysql mysql 98304 2月 11 22:16 /tmp/test/t3.ibd [root@dax-mysql-master test]# ll /data/mysql/data/test/t3* -rw-r----- 1 mysql mysql 8556 2月 11 22:16 /data/mysql/data/test/t3.frm -rw-r----- 1 mysql mysql 16 2月 11 22:16 /data/mysql/data/test/t3.isl
|
执行结果与章节1相同。