MySQL数据导入导出

#什么情况下用到导出?    

由于手动写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)
 


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值