1、数据导入:把系统文件的内容存储到数据库服务器的表里
mysql> show variables like "secure_file_priv";
//查看导入文件内容时,默认在系统的什么目录下搜索文件
默认目录:/var/lib/mysql-files/
l 修改默认使用目录
# mkdir /myload ; chown mysql /myload
# vim /etc/my.cnf
--->[mysqld]
secure_file_priv="/myload"
# systemctl restart mysqld
l 导入数据命令格式:
mysql> LOAD DATA INFILE "目录/文件名" INTO TABLE 库.表
mysql> LOAD DATA INFILE “ 目录名 / 文件名”
INTO TABLE 表名
FIELDS TERMINATED BY “ 分隔符”
LINES TERMINATED BY “\n”;
exp:
cp /etc/passwd /var/lib/mysql-files/ //复制文件到默认目录下
创建表:
mysql> create database userdb;
mysql> create table userdb.user(
-> name char(50),
-> password char(1),
-> uid int(2),
-> gid int(2),
-> comment varchar(100),
-> homedir char(60),
-> shell char(50),
-> index(name)
-> );
导入数据到表里:
mysql>load data infile "/var/lib/mysql-files/passwd"
into table userdb.user
fields terminated by ":" //设置分隔符为“:”
lines terminated by "\n"; //设置换行
往表里添加新字段:
mysql>alter table userdb.user add id int(01) zerofill primary key
auto_increment first;
mysql> select id ,name,uid from userdb.user limit 3;
//显示指定字段的前三行
l 注意事项
– 字段分隔符要与文件内的一致
– 指定导入文件的绝对路径
– 导入数据的表字段类型要与文件字段匹配
– 禁用 SElinux
2、数据导出:
l 基本用法
– SELECT 查询 .. ..
INTO OUTFILE “ 目录名 / 文件名”
FIELDS TERMINATED BY “ 分隔符”
LINES TERMINATED BY “\n”;
exp:
mysql>select * from userdb.user
into outfile “/var/lib/mysql-files/haha.txt” //目录下不能有 重名的文件
fields terminated by “:” //自定义字段分隔符
lines terminated by “###”; //自定义分行符
l 注意事项
– 导出的内容由 SQL 查询语句决定
– 禁用 SElinux