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

mysql 导入数据与导出数据

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


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


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

#重启mysqld服务
systemctl restart mysqld

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

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

image-20210903143705326



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


2.1 查看 变量secure_file_priv的值

show variables like 'secure_file_priv';

image-20210903144116268



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语句查询结果决定


image-20210903144910636



2.3 查看导出的表记录

cat /usr/local/mysql/test2_Total_Sales

image-20210903145844969



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


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

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

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

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

tail /usr/local/mysql/passwd

image-20210903151448294


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;

image-20210903153339943



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 换行符。每一行都作为数据表的一个表记录

image-20210903153637935


3.2 查看数据表

select * from school.passwd;

image-20210903154109559

posted @ 2021-09-03 15:48  知己一语  阅读(1078)  评论(0编辑  收藏  举报