MySQL数据导入导出(用于个人学习与回顾)
发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,该实例将练习MySQL的导入导出操作实例:将/etc/passwd文件导入userdb库user表并给每条记录加编号将userdb库user表中UID小于100的前10条记录导出,存为/mydata/
千家信息网最后更新 2025年11月07日MySQL数据导入导出(用于个人学习与回顾)
该实例将练习MySQL的导入导出操作
实例:
将/etc/passwd文件导入userdb库user表并给每条记录加编号
将userdb库user表中UID小于100的前10条记录导出,存为/mydata/user1.txt文件
新建userdb库,切换到userdb库,并且设置如下字段;
mysql> create database userdb;Query OK, 1 row affected (0.00 sec)mysql> use userdb;Database changedmysql> create table user( -> username varchar(24) not null, -> password varchar(48) default 'x', -> uid int(5) not null, -> gid int(5) not null, -> fullname varchar(48), -> homedir varchar(64) not null, -> shell varchar(24) not null -> );Query OK, 0 rows affected (0.01 sec)mysql> desc user;+----------+-------------+------+-----+---------+-------+| Field | Type | Null | Key | Default | Extra |+----------+-------------+------+-----+---------+-------+| username | varchar(24) | NO | | NULL | || password | varchar(48) | YES | | x | || uid | int(5) | NO | | NULL | || gid | int(5) | NO | | NULL | || fullname | varchar(48) | YES | | NULL | || homedir | varchar(64) | NO | | NULL | || shell | varchar(24) | NO | | NULL | |+----------+-------------+------+-----+---------+-------+7 rows in set (0.01 sec)
注:在MySQL 5.7.6版本之后,导入文件只能在secure_file_priv指定的文件夹下。如果直接导入会报错。执行show variables like '%secure%'命令显示文件目录:
mysql> load data infile '/etc/passwd' into table user fields terminated by ':';ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it cannot execute this statementmysql> show variables like '%secure%';+--------------------------+-----------------------+| Variable_name | Value |+--------------------------+-----------------------+| require_secure_transport | OFF || secure_auth | ON || secure_file_priv | /var/lib/mysql-files/ |+--------------------------+-----------------------+3 rows in set (0.00 sec)
执行导入操作
-将/etc/passwd文件复制到/var/lib/mysql-files/目录下,
-读取/var/lib/mysql-files/passwd文件内容,以":"为分隔,导入到user表中:
[root@host50 ~]#cp /etc/passwd /var/lib/mysql-files/mysql> LOAD DATA INFILE '/var/lib/mysql-files/passwd'-> INTO TABLE user-> FIELDS TERMINATED BY ':';Query OK, 42 rows affected (0.11 sec)Records: 42 Deleted: 0 Skipped: 0 Warnings: 0
注:上述操作中省略了行分隔 LINES TERMINATED BY '\n',因为这是默认的情况(每行一条原始记录),除非需要以其他字符分割行,才需要用到这个。
确认导入结果
mysql> select count(*) from user;+----------+| count(*) |+----------+| 42 |+----------+1 row in set (0.00 sec)mysql> select * from user limit 10;+----------+----------+-----+-----+----------+-----------------+----------------+| username | password | uid | gid | fullname | homedir | shell |+----------+----------+-----+-----+----------+-----------------+----------------+| root | x | 0 | 0 | root | /root | /bin/bash || bin | x | 1 | 1 | bin | /bin | /sbin/nologin || daemon | x | 2 | 2 | daemon | /sbin | /sbin/nologin || adm | x | 3 | 4 | adm | /var/adm | /sbin/nologin || lp | x | 4 | 7 | lp | /var/spool/lpd | /sbin/nologin || sync | x | 5 | 0 | sync | /sbin | /bin/sync || shutdown | x | 6 | 0 | shutdown | /sbin | /sbin/shutdown || halt | x | 7 | 0 | halt | /sbin | /sbin/halt || mail | x | 8 | 12 | mail | /var/spool/mail | /sbin/nologin || operator | x | 11 | 0 | operator | /root | /sbin/nologin |+----------+----------+-----+-----+----------+-----------------+----------------+10 rows in set (0.00 sec)
为user表中的每条记录添加自动编号,并验证自动编写结果
mysql> alter table user add sn int(4) auto_increment primary key first;Query OK, 0 rows affected (0.03 sec)Records: 0 Duplicates: 0 Warnings: 0mysql> select * from user limit 10;+----+----------+----------+-----+-----+----------+-----------------+----------------+| sn | username | password | uid | gid | fullname | homedir | shell |+----+----------+----------+-----+-----+----------+-----------------+----------------+| 1 | root | x | 0 | 0 | root | /root | /bin/bash || 2 | bin | x | 1 | 1 | bin | /bin | /sbin/nologin || 3 | daemon | x | 2 | 2 | daemon | /sbin | /sbin/nologin || 4 | adm | x | 3 | 4 | adm | /var/adm | /sbin/nologin || 5 | lp | x | 4 | 7 | lp | /var/spool/lpd | /sbin/nologin || 6 | sync | x | 5 | 0 | sync | /sbin | /bin/sync || 7 | shutdown | x | 6 | 0 | shutdown | /sbin | /sbin/shutdown || 8 | halt | x | 7 | 0 | halt | /sbin | /sbin/halt || 9 | mail | x | 8 | 12 | mail | /var/spool/mail | /sbin/nologin || 10 | operator | x | 11 | 0 | operator | /root | /sbin/nologin |+----+----------+----------+-----+-----+----------+-----------------+----------------+10 rows in set (0.00 sec)
从MySQL数据库中导出查询结果
-以将userdb库user表中UID小于100的前10条记录导出为/myload/user2.txt文件为例
首先,修改配置文件中存放导出导入目录及查看修改结果
[root@host50 ~]# mkdir /myload ; chown mysql /myload[root@host50 ~]# vim /etc/my.cnf[mysqld]secure_file_priv="/myload"[root@dbsvr1 ~]# systemctl restart mysqldmysql> show variables like "secure_file_priv";+------------------+----------+| Variable_name | Value |+------------------+----------+| secure_file_priv | /myload/ |
导出user表中UID小于100的前十条记录
mysql> select * from userdb.user where uid<100 -> into outfile '/myload/user.txt' -> fields terminated by ":";Query OK, 26 rows affected (0.00 sec)
确认导出结果
[root@host50 ~]# wc -l /myload/user.txt26 /myload/user.txt[root@host50 ~]# tail /myload/user.txt 25:tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin29:rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin33:gdm:x:42:42::/var/lib/gdm:/sbin/nologin35:sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin36:avahi:x:70:70:Avahi mDNS/DNS-SD Stack:/var/run/avahi-daemon:/sbin/nologin37:postfix:x:89:89::/var/spool/postfix:/sbin/nologin38:ntp:x:38:38::/etc/ntp:/sbin/nologin39:tcpdump:x:72:72::/:/sbin/nologin41:apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin42:mysql:x:27:27:MySQL Server:/var/lib/mysql:/bin/false
文件
结果
目录
实例
数据
原始
内容
命令
字段
字符
情况
数据库
文件夹
版本
这是
中导
会报
切换
查询
配置
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
国家小学网络安全平台
辽宁智慧社区软件开发公司
软件开发工程师 教程
学校网络安全管理组织机构
电力网络安全通知怎么写
8xln服务器
如何写web服务器
什么叫零极数字网络技术
实验五 查询和更新数据库
p2p网络技术书籍
公共基础信息数据库
网络安全手抄报初中 一等奖
重庆木瓜网络技术有限公司
如何生成数据库表语句
如何描述网络安全协议
承载网络技术支撑是干嘛的
sql免费数据库
如何获取公司邮箱pop服务器
黑客可以入侵到游戏的服务器吗
sql数据库表怎么复制
大学生软件开发策划书
网络安全法国实施时间
苹果手机共享服务器连接不上
2021年人口数据库
虚拟服务器app怎么下载
能通天下网络技术有限公司
服务器连接不上体验服
闻泰和华勤软件开发哪个待遇好
网络安全事件报告处置流程
服务器配置与管理关闭报错