Mysql 数据库导入导出比较快的方式

#编程技术 2019-12-06 11:04:00 | 全文 294 字,阅读约需 1 分钟 | 加载中... 次浏览

👋 相关阅读


1、备份原来数据库表结构,在新库中恢复表结构,必须跟原库一模一样,包括索引等。

2、在原库上flush table,会生成一个cfg文件

SELECT
CONCAT(
	'flush table ',
	Group_concat(aa.table_name),
	' for export;'
)
FROM
(
	SELECT
		CONCAT(
			TABLE_SCHEMA,
			'.',
			TABLE_NAME
		) AS table_name
	FROM
		information_schema. TABLES
	WHERE
		TABLE_SCHEMA = '数据库名'
) aa

3、在新库中执行以下语句,删除新库的.ibd数据文件

alter table 表名 discard tablespace;

4、将原库上的表的.ibd文件和.cfg文件传输到新库

scp -r 老数据库服务器用户名@老数据库服务器ip:老数据库文件路径  新数据库路径
如:
scp -r root@127.0.0.1:/mysql/data/wang/table.ibd /mysql/data/wang

5、原库解锁表,会删除.cfg文件

unlock tables;

6、新库修改文件权限,数据文件抽过来之后默认为 root 权限,改为 mysql 权限

chown -R mysql.mysql *

7、在新库中执行以下语句,导入新抽取的数据文件

alter table 表名 import tablespace;
·




×