• 5. 在Datadir目录外创建单独表空间


    5. 在Datadir目录外创建单独表空间

    要在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';
  • 相关阅读:
    包 (package)
    Object类
    异常
    接口
    抽象类
    多态(经典案例)
    三大特性:(经典代码)
    对象创建的过程(重点理解)
    final关键字
    cocos2dx工程中接入支付宝sdk
  • 原文地址:https://www.cnblogs.com/wanbin/p/9514655.html
Copyright © 2020-2023  润新知