MySQL 将表数据以特定格式的文本导出与导入

导出数据


方式一:mysqldump 命令

mysqldump 除了导出 SQL 语句以外,也支持导出文本数据格式。导出到 mysqld 所在的机器。

该命令导出的文本格式其实也是对 SELECT INTO OUTFILE 的一个包装(下面会提到)。

基本使用方式

mysqldump --column-statistics=0 -P 3306 -u [root] -p -T [pathname] database [tables]

选项说明 

选项 选项说明
--column-statistics

 Add an ANALYZE TABLE statement to regenerate any existing column statistics.

(使用高版本 mysqldump 去操作低版本 mysqld,不加该选项可能报错)

-P, --port=#

Port number to use for connection.

(端口号)

-u, --user=name

User for login if not current user.

(用户名)

-p, --password[=name]

Password to use when connecting to server. If password is not given it's solicited on the tty.

(密码,没有指定则会从终端获取)

-T, --tab=name

Create tab-separated textfile for each table to given path. (Create .sql and .txt files.) NOTE: This only works if mysqldump is run on the same machine as the mysqld server.

(指定一个路径,创建文本文件,但是该命令仅当 mysqldump 与 mysqld 在同一台机器时有效。也就是说,该参数的 pathname 必须是本地路径)

方式二:SELECT ... INTO OUTFILE ...

使用该语句将数据表的数据以特定格式导出到本机。该方式需要登录 mysql 客户端才可以执行。

注意:

1. 这种方式只能将表的记录导出到服务器所在机器,不能在远程连接的情况下导出到本地!!!也就是说,下面的 filepath 应该是 MySQL 所在的机器的路径。

2. 该导出受制于 --secure-file-priv 选项

语法格式: 

SELECT <columnlist> FROM <table_name> WHERE condition
INTO OUTFILE <filepath> [OPTIONS]

例子:

select * from table01 into outfile '/var/lib/mysql/table01.txt';

<filepath>:必须是一个文件的绝对路径,不是目录,且在 windows 需要注意双斜杠转义。

导入数据


LOAD DATA INFILE ...

与 SELECT INTO OUTFILE 一样,该语句也只能引用来自本机器的文件。

语法格式:

LOAD DATA INFILE 'filename.txt' INTO TABLE tbname [OPTIONS] [IGNORE number LINES]

例子:

load data infile '/var/lib/mysql/table01.txt' into table test.table01;

猜你喜欢

转载自blog.csdn.net/qq_39291919/article/details/108891449
今日推荐