mysql innodb表 copy文件的方式 备份与还原

张映 发表于 2020-02-28

分类目录: mysql

标签:, , ,

mysql myisam可以通过直接复制frm,MYD,MYI,来备份和还原,非常的方便。innodb其实也是可以的,不过就比较麻烦了。

1,设置独立表空间

# vim /etc/my.cnf //[mysqld]添加以下内容,
innodb-file-per-table=1

如果一开始设置的共享表空间,先导出数据库,删除库,然后设置成独立表空间后,在导入数据。别忘了重启。

2,创建测试表,删除表空间

mysql> create table T_AccountReceivable_20200228 like T_AccountReceivable;
Query OK, 0 rows affected (0.00 sec)  //复制一张空表

mysql> ALTER TABLE T_AccountReceivable_20200228 DISCARD TABLESPACE;
Query OK, 0 rows affected (0.03 sec)  //删除表空间

3,copy表空间文件,并修改权限

# ll |grep T_AccountReceivable_2020 //只有表结构文件
-rw-r----- 1 mysql mysql 15100 2月 28 15:59 T_AccountReceivable_20200228.frm

# cp T_AccountReceivable.ibd T_AccountReceivable_20200228.ibd  

# chown mysql.mysql T_AccountReceivable_20200228.ibd  //修改权限

4,导入并测试

mysql> ALTER TABLE T_AccountReceivable_20200228 IMPORT TABLESPACE;
Query OK, 0 rows affected, 1 warning (0.29 sec)

mysql> select count(*) as total from T_AccountReceivable_20200228;
+-------+
| total |
+-------+
| 4286 |
+-------+
1 row in set (0.02 sec)


转载请注明
作者:海底苍鹰
地址:http://blog.51yip.com/mysql/2380.html