在datadir外建立InnoDB表

2021-08-07 19:45:38 字數 2255 閱讀 1970

要在mysql datadir外的特定位置建立新的innodb file-per-table tablespace,請在create table時指定data directory = absolute_path_to_directory子句

提前規劃好位置,因為無法使用alter語句修改乙個表的data directory屬性.

mysql會在目標目錄中建立乙個對應於資料庫名稱的子目錄,並在改目錄中建立表的.ibd檔案用於儲存表資料.在mysql datadir目錄下的資料庫目錄中,mysql建立乙個包含表的路徑名稱的table_name.isl檔案. .isl檔案由mysql處理,像乙個符號鏈結(不過innodb表不支援實際的符號鏈結)

版本

[root@test43100 ~]# cat /etc/redhat-release

centos release 6.4 (final)

[root@test43100 ~]# mysql -e "\s"

--------------

mysql ver

14.14

distrib

root@mysqldb11:

00: [(none)]> use fandb

database changed

root@mysqldb11:

00: [fandb]> show

variables

like

'innodb_file_per_table';

+-----------------------+-------+

| variable_name | value |

+-----------------------+-------+

| innodb_file_per_table | on |

+-----------------------+-------+

1 row in set (0.00 sec)

root@mysqldb11:

00: [fandb]> create table t_out(id int auto_increment primary key) data directory='/data/outdir';

query

ok, 0 rows affected (0.37 sec)

檢視目標目錄

[mysql@test43100 data]$ tree outdir/

outdir/

└── fandb

└── t_out.ibd

檢視datadir

[root@test43100 fandb]# ls -lt

total 412

-rw-r----- 1 mysql mysql 28

sep611:

03 t_out.isl

-rw-r----- 1 mysql mysql 8556

sep611:

03 t_out.frm

包含.isl和.frm檔案

您還可以將create table … tablespace與data directory子句結合使用,以便在mysql資料目錄之外建立乙個file-per-table tablespace。 為此,您必須指定innodb_file_per_table作為表空間名稱。

root@mysqldb 11:03:  [fandb]> create table t_out2(id int auto_increment primary key) tablespace = innodb_file_per_table data directory='/data/outdir';

query

ok, 0 rows affected (0.42 sec)

檢視目標目錄

[mysql@test43100 data]$ tree outdir/

outdir/

└── fandb

├── t_out2.ibd

└── t_out.ibd

檢視datadir

[root@test43100 fandb]# ls -lt

total

428-rw-r----- 1 mysql mysql 29 sep 6 11:08 t_out2.isl

-rw-r----- 1 mysql mysql 8556 sep 6 11:08 t_out2.frm

使用第二章方法無需啟用innodb_file_per_table

mysql建立外來鍵報錯 Mysql表建立外來鍵報錯

資料庫表a create table task desc tab id int 11 primary key not null comment 自增主鍵 auto increment,taskname varchar 200 not null comment 任務名字 sqlname varchar...

建立主鍵 建立外來鍵 建立約束

建立主鍵 三種方法 建立學生表 第一種 create table student sno char 5 primary key,學號 可以直接指定主鍵 sname char 20 not null,姓名 s char 3 not null,性別 sage integer not null,年齡 sd...

外來鍵建立方式

建立方式一 建立表時加入外來鍵 建立grade表 create table grade gradeid int 10 notnull auto increment comment 年級id grandename varchar 50 not null comment 年級名稱 primary key...