一、数据导入、导出
- 查看当前数据库版本命令
- show variables; 输出所有系统变量
1、搜索路径
1.1、查看搜索路径
- 5.7版本的数据库要求,数据的导入导出必须在指定的目录。
-
/var/lib/mysql-files/ 系统默认的
-
mysql> show variables like "%secure_file_priv%";
+------------------+-----------------------+
| Variable_name | Value |
+------------------+-----------------------+
| secure_file_priv | /var/lib/mysql-files/ |
+------------------+-----------------------+
1 row in set (0.00 sec)
1.2、修改系统默认的搜索路径
[root@db1 ~]# mkdir /myload
[root@db1 ~]# vim /etc/my.cnf
[mysqld]
secure_file_priv="/myload"
[root@db1 ~]# chown mysql /myload/ //必须要保证mysql用户对这个目录有读写的权限
[root@db1 ~]# ls -ld /myload/
[root@db1 ~]# systemctl restart mysqld
2、数据导入
- 把系统文件的内容存储到数据库的表里
- 批量存储数据
- 命令格式
- load data infile “目录名/文件名”
into table 库名.表名 - 数据导入操作步骤
-
(1)建表——表结构应该根据数据的内容来制定
-
(2)把系统文件拷贝到检索目录下
-
(3)导入数据
-
(4)查看数据
-
2.1、第一步建表
- 示例
mysql> create database db3 ;
mysql> create table db3.user(
-> name char(30) , password char(1) , uid int , gid int ,
-> comment varchar(150) , homedir char(80) , shell char(60)
-> );
mysql> desc db3.user;
2.2、第二步拷贝数据到检索目录
mysql> system cp /etc/passwd /myload/ //system调用系统命令
mysql> system ls /myload/
passwd
2.3、第三步导入数据
mysql> load data infile "/myload/passwd"
-> into table db3.user
-> fields terminated by ":" //定义分隔符,必须要和passwd文件的分隔符一致
-> lines terminated by "\n"; //换行符
3、数据导出
- 把表记录存储到系统文件里
- 功能:批量处理数据
- 命令格式:
sql查询命令 into outfile "目录/文件名" [ fields terminated by "列间隔符号" lines terminated by "行间隔符号" ];
- 注意事项
- 示例
-
将id小于等于10的行导出
-
mysql> select * from db3.user where id <= 10 into outfile "/myload/a.txt";
mysql> system cat /myload/a.txt
- 示例
-
-
将id小于等于3的name、shell和uid导出,字段间的分隔符为"???",行间用"###"
-
mysql> select name , shell , uid from db3.user where id <= 3
-> into outfile "/myload/c.txt"
-> fields terminated by "????" lines terminated by "###" ;
mysql> system cat /myload/c.txt
评论(0)
您还未登录,请登录后发表或查看评论