3.1 数据导入导出

案例分析:

vsftp+MySQL

 1 DROP DATABASE IF EXISTS vsftpd;
 2 
 3 --- 创建数据库
 4 CREATE DATABASE vsftpd;
 5 
 6 --- 创建用户设置密码并授予对 vsftpd 库查询权限
 7 GRANT SELECT ON vsftpd.* TO 'vsftpd'@'127.0.0.1' IDENTIFIED BY '123456';
 8 
 9 --- 创建数据表
10 USE vsftpd;
11 CREATE TABLE `vsftpusers` (
12   `id` int AUTO_INCREMENT NOT NULL,
13   `name` VARCHAR(50) COMMENT'姓名',
14   `username` char(20) binary NOT NULL COMMENT '登录名',
15   `password` char(48) binary NOT NULL COMMENT '登录密码',
16   `phone` varchar(11) DEFAULT NULL COMMENT '电话号码',
17   `explain` varchar(255) DEFAULT NULL COMMENT '备注',
18   primary key(`id`)
19 )character set = utf8, COMMENT 'vsftpd用户认证表';
20 
21 --- 插入数据
22 INSERT INTO vsftpusers(name,username,password) VALUES('张三','a1',password('123123'));
23 INSERT INTO vsftpusers(name,username,password) VALUES('李四','a2',password('123456'));
24 INSERT INTO vsftpusers(name,username,password) VALUES('王五','a3',password('456456'));
25 INSERT INTO vsftpusers(name,username,password) VALUES('赵六','a4',password('456456'));
26 SELECT * FROM vsftpd.vsftpusers;
View Code

导入数据:

 

 

查看数据导入路径

mysql> show variables like "secure_file_priv"\G
*************************** 1. row ***************************
Variable_name: secure_file_priv
        Value: /var/lib/mysql-files/
1 row in set (0.00 sec)

创建导入文件的表时,表内的字段,类型,约束条件等取悦于导入文件的内容来定

此实验以导入/etc/passwd文件为例

创建导入数据的表
mysql> create table user(
    -> name char(50),
    -> password char(1),
    -> uid smallint,
    -> gid smallint,
    -> describ char(200),
    -> homedir char(200),
    -> shell char(100),
    -> index(name)
    -> );
Query OK, 0 rows affected (0.01 sec)
数据导入用法
基本用法
    LOAD    DATA    INFILE    “目录名/文件名”
    INTO    TABLE    表名
    FIELDS    TERMINATED  BY      “分隔符”
    LINES    TERMINATED  BY      “\n”;
注意事项
    字段分隔符要与文件内的一致
    指定导入文件的绝对路径
    导入数据的表字段类型要与文件字段匹配
    禁用SELinux保护机制
导入数据
mysql> load data infile "/var/lib/mysql-files/passwd"
    -> into table user
    -> fields terminated by ":"
    -> lines terminated by "\n";
Query OK, 21 rows affected (0.00 sec)
Records: 21  Deleted: 0  Skipped: 0  Warnings: 0
导出数据
基本用法
    SQL查询       INTO   OUTFILE       “目录名/文件名”
    FIELDS      TERMINATED     BY   “分隔符”
    LINES         TERMINATED     BY    “\n”;
注意事项
    导出的内容由SQL查询语句决定
    导出的是表中的记录,不包括表字段名
    禁用SELinux保护机制
    
数据导出时,不可预先创建文件,在导出时指定文件名

mysql> select * from user into outfile "/root/user.txt"
    -> fields terminated by ":"
    -> lines terminated by "\n";
ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it cannot execute this statement
mysql> select * from user into outfile "/var/lib/mysql-files/user.txt"
    -> fields terminated by ":"
    -> lines terminated by "\n";
Query OK, 21 rows affected (0.00 sec)

 导出指定字段:

mysql> select uid,name,password from user
    -> into outfile "/var/lib/mysql-files/unp.txt"
    -> fields terminated by ":"
    -> lines terminated by "\n";
Query OK, 21 rows affected (0.00 sec)


mysql> select uid,name from user where uid <=500
    -> into outfile "/var/lib/mysql-files/un.txt"
    -> fields terminated by ":"
    -> lines terminated by "\n";
Query OK, 19 rows affected (0.00 sec)

 

posted @ 2021-03-08 17:38  huakai201  阅读(182)  评论(0)    收藏  举报