#什么情况下用到导出?
由于手动写SQL麻烦,量大不方便。
导出方式1:
导出数据工具:mysqldump是MySQL提供一个用于数据备份的工具,可以导出整个数据库或单个表
实际上导出的是一些SQL语句 => 如果执行这些SQL语句相当于对数据做了一次导入
> 重定向(清空原文件):将前面的输出的结果,输出到指定的位置
>> 重定向(追加)
# mysqldump -uroot -p12345678 test2 > ./mysqldump_test2.sql
导出方式2:
SELECT....INTO....OUTFILE语句
root@test2 localhost>SELECT * FROM students INTO OUTFILE '/root/test2_students.csv';
ERROR 1 (HY000): Can't create/write to file '/root/test2_students.csv' (Errcode: 30 "Read-only file system")
如果报错了:建议查一下
大概率错误原因:权限不足
#数据导出常见两个问题
1. 权限问题:你要写入的目录是否有写的权限
2. 路径正确
3. selinux设置(disable)
setenforce 0 => 临时关闭(如果重启机器->失效)
vim /etc/selinux/config => 永久生效(需要重启机器)
SELINUX=disabled
数据导出:
1. mysqldump: 导出整个库或表 => sql文件
2. select ... into...: 导出表中数据(过滤)=> txt/csv
#数据导入:
方式1:
> CREATE DATABASE test4 CHARACTER SET UTF8;
# mysql -uroot -p12345678 test4 < /root/mysqldump_test2.sql(综合起来,这行命令的作用是:以用户 root 和密码 12345678 登录 MySQL 服务器,选择 test4 数据库,然后执行位于 /root/mysqldump_test2.sql 文件中的 SQL 语句,通常用于恢复数据库或者导入数据。
)--通俗易懂的来说就是将后者作为输入,输入到前者的test4数据库里面去
方式2:
> CREATE DATABASE test5 CHARACTER SET UTF8;
> USE test5;
> source /root/mysqldump_test2.sql;
> show tables;
+-----------------+
| Tables_in_test5 |
+-----------------+
| app |
| app2 |
| app3 |
| employees |
| product |
| scores |
| stu_scores |
| students |
| test_lock1 |
| test_primarykey |
| test_unique |
+-----------------+
11 rows in set (0.001 sec)
-->
注意SELECT ... INTO FILE....导出的数据,如果要导入,必须先创建好表
CREATE DATABASE test6 CHARACTER SET UTF8;
USE test6
CREATE TABLE `product` (
`pid` int(11) NOT NULL,
`pname` varchar(20) NOT NULL,
`price` double DEFAULT NULL,
`category_id` char(4) DEFAULT NULL,
PRIMARY KEY (`pid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci
#导入: LOAD DATA INFILE '/backup/test2_product1.csv' INTO TABLE product FIELDS TERMINATED BY ',';
root@test6 localhost>select * from product;
+-----+-----------------+-------+-------------+
| pid | pname | price | category_id |
+-----+-----------------+-------+-------------+
| 1 | 联想 | 5018 | c001 |
| 2 | 海尔 | 3002 | c001 |
| 3 | 雷神 | 5002 | c001 |
| 4 | 杰克琼斯 | 800 | c002 |
| 5 | 真维斯 | 201 | c002 |
| 6 | 花花公子 | 440 | c002 |
| 7 | 劲霸 | 2003 | c002 |
| 8 | 香奈儿 | 800 | c003 |
| 9 | 相宜本草 | 200 | c003 |
| 10 | 面霸 | 6 | c003 |
| 11 | 好想你枣 | 57 | c004 |
| 12 | 香飘飘奶茶 | 1 | c005 |
| 13 | 海澜之家 | 1 | c002 |
| 14 | test | 1 | c006 |
+-----+-----------------+-------+-------------+
14 rows in set (0.000 sec)