表的导出
mysql 默认对导出的目录有权限限制,也就是说使用命令进行导出的时候,需要指定目录进行操作
show global variables like ‘%secure%’;
secure_file_priv 值情况分析:
- 如果设置为empty,表示不限制文件生成的位置,这里不完全的设置
- 如果设置为一个表示路径的字符串,就要求生成的文件只能放在这个指定的目录,或它的子目录
- 如果设置为null,就表示禁止这个mysql实例上执行select。。。。into outfile 操作
方式1 使用SELECT … INTO OUTFILE 导出文本文件
use zen;
select * from employee into outfile “路径.txt”
导出 字段之间用逗号,间隔,所有值用双引号括起来
在mysql中执行
select * form 表名 into outfile 路径.txt fields terminated by ‘,’ enclosed by ‘"’;
方式2 使用mysqldump 导出 一个是 表结构的sql文件、一个是数据记录的文本文件
mysqldump 不是在mysql中运行的,是在mysql安装的目录bin cmd。
mysqldump -uroot -p -T 路径 数据库 表
其他两种方式,可以导出具体信息,mysqldump 只能导出整个表。
方式3 使用mysql 命令导出文本文件
mysql -uroot -p --execute=“sql语句;” 数据库名称>路径+文件名
表的导入
方式1 load data infile 方式导入文件 需要在mysql中执行的
在mysql中执行
load data infile ’路径+文件名.txt‘ into table 数据库.表;
导入带分隔符
load data infile ’路径+文件名‘ into table 数据库.表 fields terminated by ‘,’ encoded by ‘"’ ;
方式2 mysqlimport 方式导入文本文件
mysqlimport -uroot -p 数据库 ’路径+文件.txt‘ [ --fields-terminated-by=‘,’ --fields-optionally-enclose-by=‘"’;
mysqlimport 参数