发一篇基础的,关于MySQL数据导出导入的文章,目的有二:

1.备忘
2.供开发人员测试

工具

mysql
mysqldump

应用举例

导出
  1. 导出全库备份到本地的目录

    mysqldump -u$USER -p$PASSWD -h127.0.0.1 -P3306 --routines --default-character-set=utf8 --lock-all-tables --add-drop-database -A > db.all.sql

  2. 导出指定库到本地的目录(例如mysql库)
    mysqldump -u$USER -p$PASSWD -h127.0.0.1 -P3306 --routines --default-character-set=utf8 --databases mysql > db.sql

  3. 导出某个库的表到本地的目录(例如mysql库的user表)
    mysqldump -u$USER -p$PASSWD -h127.0.0.1 -P3306 --routines --default-character-set=utf8 --tables mysql user> db.table.sql

  4. 导出指定库的表(仅数据)到本地的目录(例如mysql库的user表,带过滤条件)
    mysqldump -u$USER -p$PASSWD -h127.0.0.1 -P3306 --routines --default-character-set=utf8 --no-create-db --no-create-info --tables mysql user --where="host='localhost'"> db.table.sql

  5. 导出某个库的所有表结构
    mysqldump -u$USER -p$PASSWD -h127.0.0.1 -P3306 --routines --default-character-set=utf8 --no-data --databases mysql > db.nodata.sql

  6. 导出某个查询sql的数据为txt格式文件到本地的目录(各数据值之间用"制表符"分隔)
    例如sql为'select user,host,password from mysql.user;'

    mysql -u$USER -p$PASSWD -h127.0.0.1 -P3306 --default-character-set=utf8 --skip-column-names -B -e 'select user,host,password from mysql.user;' > mysql_user.txt

  7. 导出某个查询sql的数据为txt格式文件到MySQL服务器.
    登录MySQL,将默认的制表符换成逗号.(适应csv格式文件).
    指定的路径,mysql要有写的权限.最好用tmp目录,文件用完之后,再删除!

    SELECT user,host,password FROM mysql.user INTO OUTFILE '/tmp/mysql_user.csv' FIELDS TERMINATED BY ',';
    

导入
  1. 恢复全库数据到MySQL,因为包含mysql库的权限表,导入完成需要执行FLUSH PRIVILEGES;命令

    第一种方法:
    mysql -u$USER -p$PASSWD -h127.0.0.1 -P3306 --default-character-set=utf8 < db.all.sql第二种方法:
    登录MySQL,执行source命令,后面的文件名要用绝对路径.
    ......
    mysql> source /tmp/db.all.sql;
    

  2. 恢复某个库的数据(mysql库的user表)
    第一种方法:
    mysql -u$USER -p$PASSWD -h127.0.0.1 -P3306 --default-character-set=utf8 mysql < db.table.sql第二种方法:
    登录MySQL,执行source命令,后面的文件名要用绝对路径.
    mysql -u$USER -p$PASSWD -h127.0.0.1 -P3306 --default-character-set=utf8
    ......
    mysql> use mysql;
    mysql> source /tmp/db.table.sql;
    

  3. 恢复MySQL服务器上面的txt格式文件(需要FILE权限,各数据值之间用"制表符"分隔)
    mysql -u$USER -p$PASSWD -h127.0.0.1 -P3306 --default-character-set=utf8
    ......
    mysql> use mysql;
    mysql> LOAD DATA INFILE '/tmp/mysql_user.txt' INTO TABLE user ;
    

  4. 恢复MySQL服务器上面的csv格式文件(需要FILE权限,各数据值之间用"逗号"分隔)
    mysql -u$USER -p$PASSWD -h127.0.0.1 -P3306 --default-character-set=utf8
    ......
    mysql> use mysql;
    mysql> LOAD DATA INFILE '/tmp/mysql_user.csv' INTO TABLE user FIELDS TERMINATED BY ',';
    

  5. 恢复本地的txt或csv文件到MySQL
    mysql -u$USER -p$PASSWD -h127.0.0.1 -P3306 --default-character-set=utf8
    ......
    mysql> use mysql;
    # txt
    mysql> LOAD DATA LOCAL INFILE '/tmp/mysql_user.csv' INTO TABLE user;
    # csv
    mysql> LOAD DATA LOCAL INFILE '/tmp/mysql_user.csv' INTO TABLE user FIELDS TERMINATED BY ',';
    

注意事项

  1. 关于MySQL连接
    -u$USER 用户名
    -p$PASSWD 密码
    -h127.0.0.1 如果连接远程服务器,请用对应的主机名或者IP地址替换
    -P3306 端口
    --default-character-set=utf8 指定字符集
  2. 关于mysql参数
    --skip-column-names 不显示数据列的名字
    -B 以批处理的方式运行mysql程序.查询结果将显示为制表符间隔格式.
    -e 执行命令后,退出
  3. 关于mysqldump参数
    -A 全库备份
    --routines 备份存储过程和函数
    --default-character-set=utf8 设置字符集
    --lock-all-tables 全局一致性锁
    --add-drop-database 在每次执行建表语句之前,先执行DROP TABLE IF EXIST语句
    --no-create-db 不输出CREATE DATABASE语句
    --no-create-info 不输出CREATE TABLE语句
    --databases 将后面的参数都解析为库名
    --tables 第一个参数为库名 后续为表名
  4. 关于LOAD DATA语法
    如果LOAD DATA语句不带LOCAL关键字,就在MySQL的服务器上直接读取文件,且要具有FILE权限.
    如果带LOCAL关键字,就在客户端本地读取数据文件,通过网络传到MySQL.
    LOAD DATA语句,同样被记录到binlog,不过是内部的机制.

MySQL数据导出与导入相关推荐

  1. mysql导出权限授权_本文实例讲述了mysql数据库创建账号、授权、数据导出、导入操作。分享给大家供大家参考,具体如下:1、账号创建及授权grant all privileg...

    本文实例讲述了mysql数据库创建账号.授权.数据导出.导入操作.分享给大家供大家参考,具体如下: 1.账号创建及授权 grant all privileges on *.* to 'yangxin' ...

  2. mysql数据导出权限问题

    mysql数据导出的方法有非常多,比如mysqldump, mysql -e 'sql' > file, 这些都能够非常方便的导出数据,但是在使用普通用户导出数据的时候,出现了问题. 1 sel ...

  3. python抓取数据库数据封装成json_用Python将mysql数据导出成json的方法

    1.相关说明 此脚本可以将Mysql的数据导出成Json格式,导出的内容可以进行select查询确定. 数据传入参数有:dbConfigName, selectSql, jsonPath, fileN ...

  4. memcached命令行、Memcached数据导出和导入、php连接memcache、php的session存储到memcached...

    1.memcached命令行 telnet 127.0.0.1 11211 set key2 0 30 2 ab STORED get key2 VALUE key2 0 2 ab END  如: s ...

  5. php mysql 导出到excel,php mysql数据导出到excel文件

    这篇文章主要为大家详细介绍了php mysql数据导出到excel文件,具有一定的参考价值,可以用来参考一下. 感兴趣的小伙伴,下面一起跟随512笔记的小编罗X来看看吧. 经测试代码如下: /** * ...

  6. 【MySQL】mysql数据导出

    目录 使用 SELECT ... INTO OUTFILE 语句导出数据 通过mysqldump命令导出数据和备份SQL 将指定主机的数据库拷贝到本地 在项目中,遇到需要把MySQL数据导出到本地时, ...

  7. mysql 导出中间 数据_MYSQL数据库之间的数据导出与导入

    源数据库地址: 172.16.1.7 目标数据库地址: 172.16.1.51 步骤: (1) 进入172.16.1.7服务器,登录mysql数据库 mysqldump -uusername -ppa ...

  8. mysql授权其他用户导出数据_mysql创建账号、授权、数据导出、导入

    1.账号创建及授权 grant all privileges on *.* to 'yangxin'@'%' identified by 'yangxin123456' with grant opti ...

  9. c 控制mysql数据导出_MySql数据库导入导出的三种方式

    第一种: 使用mysql自带的Workbench可视化工具进行操作,如图: 选择好以后按  start Export 选择好以后按  start import 第二种: 使用Navicat 右键点击转 ...

最新文章

  1. 博世发布7款传感器新品 从汽车到消费电子
  2. echart折线图小知识
  3. 使用java的HttpClient实现抓取网页数据
  4. 保存Activity的状态
  5. Hotspot hotswap, who and who are best freinds
  6. cobbler工作流分析
  7. BugkuCTF-Crypto题MathEnglish
  8. 数组中某个元素相同的去重_JAvaScript:JS数组元素去重的方法
  9. springboot分页展示功能_SpringBoot实战项目(三)用户列表以及分页功能实现
  10. 植物大战僵尸修改办法
  11. 分享一个linux下的steam的rpm安装包的链接
  12. S3C2440-裸机篇-05 | S3C2440时钟体系详解(FCLK、PCLK、HCLK)
  13. blk_rq_map_user和blk_rq_map_kern
  14. 【网络游戏同步技术】游戏中的ping值计算
  15. 3、线性表的顺序存储结构(顺序表)
  16. DFS 简单的剪枝和状态压缩 海贼王之伟大航路
  17. ubuntu 通过文件夹打开终端,通过终端打开文件夹
  18. Alamofire学习(一)网络基础
  19. 基于SSM的幼儿园信息管理系统
  20. Kalman滤波在船舶导航定位系统中的应用

热门文章

  1. 所有weblogic版本下载
  2. OA系统高性能部署方案
  3. MySQL中length()、char_length()的区别和用法
  4. IE浏览器对象不支持Blob属性或方法,IE浏览器不支持canvas toBlob()方法的Polyfill
  5. Java实现模糊查询
  6. 二维码制作方法有什么?看完这篇你就会了
  7. Sdut PTA练习 2021级-JAVA02 基础语法1--标识符、常量与变量、数据类型、运算符与表达式
  8. 小程序页面传值的方式
  9. i5 12600k参数 i512600k评测
  10. IP分片和TCP分段解析--之IP分片