MySQL数据导入导出(用于个人学习与回顾)
发表于:2025-02-01 作者:千家信息网编辑
千家信息网最后更新 2025年02月01日,该实例将练习MySQL的导入导出操作实例:将/etc/passwd文件导入userdb库user表并给每条记录加编号将userdb库user表中UID小于100的前10条记录导出,存为/mydata/
千家信息网最后更新 2025年02月01日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安全错误
数据库的锁怎样保障安全
中国纹样数据库官方
什么是服务器并发
数据库单向同步技术
软件开发注册资本
重庆直销软件开发外包
传易互联网络科技
服务器系统的画图在哪里
重庆项目软件开发多少钱
数据导入需要改数据库用户名
网络安全学会征文
java数据库自动备份
服务器繁忙与优化
农信社软件开发测试岗笔试题
全球权威引文数据库
人类基因组数据库包含
手动分区格式化数据库
软件开发课程海报收纳
数据库安全链接
国家安全观网络安全调查
共享软件开发
平度微信公众号软件开发公司
中职计算机网络技术基础课程
思科服务器管理系统
国际材料数据库
广州华路卓网络技术招工电话
为什么选择软件开发答案
移动的服务器哪个快一点
网络安全班会学校新闻稿
网络技术认知
数据库和期刊的关系