mysql 导入数据与导出数据

一,将表记录从数据库中导出

1 修改配置文件,设置导入与导出目录权限


vim /etc/my.cnf
[mysqld]
#设置任意目录后可以导入导出文件
secure_file_priv =

#重启mysqld服务
systemctl restart mysqld

虽然设置了任意目录都可以导入导出,但是,还是会受到linux系统中各个目录权限的限制。

mysqld服务是使用mysql用户启动,所有,还需要mysql用户拥有导出导出目录的读写执行权限

mysql数据库的数据导出与导入_mysql



2 进入数据库,将表记录导出到数据库外(root用户)


2.1 查看 变量secure_file_priv的值

show variables like 'secure_file_priv';

mysql数据库的数据导出与导入_数据库_02



2.2 将数据表的表记录导出到文件

select * from test2.Total_Sales into outfile '/usr/local/mysql/test2_Total_Sales' 
    fields terminated by '**' 
    lines terminated by '\n';

/usr/local/mysql/test2_Total_Sales :mysqld服务由mysql用户启动。mysql用户需要有文件导出目录的权限。

fields terminated by '** ' : 设置列分隔符为**

lines terminated by '\n'; 设置行分隔符为 \n

只会导出表记录,表字段并不会被导出。并且,导出的结果是由select语句查询结果决定


mysql数据库的数据导出与导入_mysql_03



2.3 查看导出的表记录

cat /usr/local/mysql/test2_Total_Sales

mysql数据库的数据导出与导入_导入导出_04



二: 将文件导入到数据库,生成数据表

1, 将要导入的文件复制到 /usr/local/mysql 目录中

也可以是其他的目录,因为我们配置了所有目录都可以导入导出。但是,mysql要有该目录权限

cp /etc/passwd /usr/local/mysql/
ls  /usr/local/mysql/passwd 

2, 查看文件的结构,创建数据库与相应结构的数据表

tail /usr/local/mysql/passwd

mysql数据库的数据导出与导入_导入导出_05


2.1 进入数据库,创建相应的数据表

#根据文件结构,创建相应字段的数据表
create table school.passwd (user_name char(20),user_passwd char(2),
                            uid int,  gid int, user_description char(150) ,
                            user_home char(30),user_shell char(20));
                            

desc school.passwd;

mysql数据库的数据导出与导入_导入导出_06



3 导入数据到数据表

3.1 导入数据

load data  infile '/usr/local/mysql/passwd' into table school.passwd  
                  fields terminated by ':'  
                  lines terminated by '\n';

fields terminated by ':' :列分割符为冒号:。以冒号为分隔的字段,分别作为数据表各个字段的值

lines terminated by '\n': 行分隔符为 \n 换行符。每一行都作为数据表的一个表记录

mysql数据库的数据导出与导入_数据库_07


3.2 查看数据表

select * from school.passwd;

mysql数据库的数据导出与导入_mysql_08