MySQL 8.0创建使用通用表空间

使用数据目录存放表空间。

root [(none)]> create tablespace test_01 add datafile 'test_01.ibd';
Query OK, 0 rows affected (0.11 sec)

root [(none)]> use test
Database changed

root [test]> create table test01(id int) tablespace = test_01;
Query OK, 0 rows affected (0.01 sec)

root [test]> insert into test01 values (10), (20);
Query OK, 2 rows affected (0.00 sec)
Records: 2  Duplicates: 0  Warnings: 0

root [test]> show create table test01\G
*************************** 1. row ***************************
       Table: test01
Create Table: CREATE TABLE `test01` (
  `id` int DEFAULT NULL
) /*!50100 TABLESPACE `test_01` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
1 row in set (0.00 sec)

root [test]> show global variables like 'innodb_directories';
+--------------------+-------+
| Variable_name      | Value |
+--------------------+-------+
| innodb_directories |       |
+--------------------+-------+
1 row in set (0.00 sec)

表空间指定数据目录外的磁盘

修改参数

innodb_directories = /data/mysql_data_3307_tablespace

重启DB

查看参数

root [(none)]> show global variables like 'innodb_directories';
+--------------------+----------------------------------+
| Variable_name      | Value                            |
+--------------------+----------------------------------+
| innodb_directories | /data/mysql_data_3307_tablespace |
+--------------------+----------------------------------+
1 row in set (0.01 sec)

root [(none)]> use test
Database changed
root [test]> create table test02(id int) tablespace test_02;
Query OK, 0 rows affected (0.02 sec)

root [test]> insert into test02 values (10), (20);
Query OK, 2 rows affected (0.01 sec)
Records: 2  Duplicates: 0  Warnings: 0

root [test]> show create table test02\G
*************************** 1. row ***************************
       Table: test02
Create Table: CREATE TABLE `test02` (
  `id` int DEFAULT NULL
) /*!50100 TABLESPACE `test_02` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
1 row in set (0.00 sec)

root [test]> system ls /data/mysql_data_3307_tablespace
test21.ibd

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要恢复 MySQL 8.0表空间,你可以按照以下步骤进行操作: 1. 停止 MySQL 服务器:使用适当的方式停止 MySQL 服务器,确保在进行任何操作之前数据库处于离线状态。 2. 备份原始表空间:在进行任何更改之前,强烈建议备份原始表空间文件。这样,即使操作出现问题,你也可以还原到先前的状态。 3. 删除或移动损坏的表空间:如果你已经确定哪个表空间损坏或丢失,可以删除或移动它。你可以使用以下两种方法之一来完成此操作: - 使用 DROP TABLESPACE 命令删除表空间。例如:`DROP TABLESPACE your_tablespace;` - 使用 ALTER TABLE ... REMOVE PARTITIONING 命令移除分区,并将数据从损坏的表空间转移到其他有效的表空间。例如:`ALTER TABLE your_table REMOVE PARTITIONING;` 4. 创建新的表空间使用 CREATE TABLESPACE 命令创建一个新的表空间。指定正确的数据文件路径和名称。例如:`CREATE TABLESPACE your_tablespace ADD DATAFILE 'path/to/your_tablespace.ibd';` 5. 将表移回新的表空间使用 ALTER TABLE ... TABLESPACE 命令将表移回新的表空间。例如:`ALTER TABLE your_table TABLESPACE your_tablespace;` 6. 启动 MySQL 服务器:启动 MySQL 服务器,并确保能够正常访问恢复的表空间和数据。 请注意,这些步骤仅适用于恢复表空间而不是整个数据库。如果你需要恢复整个数据库,请参考 MySQL 官方文档或与专业数据库管理员联系以获取更多帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值