数据的导入与导出
-
查看导入与导出默认检索路径
mysql> show variables like "%file%"; # 模糊查询 mysql> show variables like "secure_file_priv"; # 精确路径查询 mysql> system ls /var/lib/mysql-files # 查看该目录 # system 可以在mysql交互模式下执行系统命令
-
修改默认检索路径
[root@admin ~]# mkdir /myload [root@admin ~]# chown mysql /myload [root@admin ~]# vim /etc/my.cnf [mysqld] secure_file_priv="/myload" secure_file_priv [root@admin ~]# systemctl restart mysqld mysql> show variables like "secure_file_priv"; | secure_file_priv | /myload/ |
数据的导入操作
-
数据导入
什么是数据导入: 把系统文件内容存储到数据库服务器的表里 数据导入步骤 - 默认只有root用户有数据导入权限 - 建库 建表(表结构根据文件内容创建) - 导入数据 命令格式 mysql> load data infile "目录名/文件名" into table 库名.表名 fields terminated by "分隔符" # 区分列 lines terminated by "\n"; # 区分行
-
数据导入示例
mysql> create table user( username char(50), password char(1), uid int, gid int, comment varchar(150), homedir char(150), shell char(50)); mysql> load data infile "/myload/passwd" into table user fields terminated by ":" lines terminated by "\n"; mysql> select * from user; # 查看导入结果 mysql> alter table user add id int primary key auto_increment first; # 为该表添加一条id字段并设置为主键
数据的导出操作
-
数据导出
什么是数据导出?把表记录保存到系统文件里 命令格式 select命令 into outfile "目录/文件名"; select命令 into outfile "目录/文件名" fields terminated by "分隔符"; select命令 into outfile "目录/文件名" fields terminated by "分隔符" lines terminated by "\n"; # 目录只能是之前配置的检索目录
-
数据导出示例
mysql> select * from user into outfile "/myload/1.txt"; mysql> select * from user into outfile "/myload/2.txt" fields terminated by "<-->"; mysql> select * from user into outfile "/myload/3.txt" fields terminated by "<-->" lines terminated by "\n"; # 分别查看输出的三个文件,查看导出文件的区别 - 不指定分隔符时,默认使用制表符 - 好像有自动'\n'