MySQL数据导出导入

一、数据导出

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

sql 复制代码
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库)

sql 复制代码
mysqldump -u$USER -p$PASSWD -h127.0.0.1 -P3306 --routines--default-character-set=utf8 --databases mysql > db.sql

3.导出某个库的表到本地的目录(例如mysql库的user表)

sql 复制代码
mysqldump -u$USER -p$PASSWD -h127.0.0.1 -P3306 --routines--default-character-set=utf8 --tables mysql user> db.table.sql

4.导出指定库的表(仅数据)到本地的目录(例如mysql库的user表,带过滤条件)

sql 复制代码
mysqldump -u$USER -p$PASSWD -h127.0.0.1 -P3306 --routines--default-character-set=utf8 --no-create-db --no-create-info --tables mysqluser --where="host='localhost'"> db.table.sql

5.导出某个库的所有表结构

sql 复制代码
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;'

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

7.导出某个查询sql的数据为txt格式文件到MySQL服务器.

登录MySQL,将默认的制表符换成逗号.(适应csv格式文件).

指定的路径,mysql要有写的权限.最好用tmp目录,文件用完之后,再删除!

sql 复制代码
SELECT user,host,password FROM mysql.user INTO OUTFILE'/tmp/mysql_user.csv' FIELDS TERMINATED BY ',';

二、数据导入

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

第一种方法:

sql 复制代码
mysql -u$USER -p$PASSWD -h127.0.0.1 -P3306 --default-character-set=utf8 <db.all.sql

第二种方法:

登录MySQL,执行source命令,后面的文件名要用绝对路径.

sql 复制代码
mysql> source /tmp/db.all.sql;

2.恢复某个库的数据(mysql库的user表)

第一种方法:

sql 复制代码
mysql -u$USER -p$PASSWD -h127.0.0.1 -P3306 --default-character-set=utf8 mysql< db.table.sql

第二种方法:

登录MySQL,执行source命令,后面的文件名要用绝对路径.

sql 复制代码
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权限,各数据值之间用"制表符"分隔)

sql 复制代码
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权限,各数据值之间用"逗号"分隔)

sql 复制代码
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 FIELDSTERMINATED BY ',';

5.恢复本地的txt或csv文件到MySQL

sql 复制代码
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 FIELDSTERMINATED BY ',';

三、注意事项

1.关于MySQL连接

-uUSER 用户名 -pPASSWD 密码
-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,不过是内部的机制。

5、MySQL Select into outfile用于导出指定的查询数据到文件,数据是导出到服务器所在的目录上

导出表中所有数据到C盘根目录outfile.txt中如下:

Select * into outfile 'c://outfile.txt' from test;

导出表中指定查询条件2005-06-08号的数据到C盘根目录outfile1.txt中如下:

Select * into outfile 'c://outfile.txt' from test where beginDate='2008-06-08'

再如:

mysql> select * from action_bak limit 10 into outfile '/tmp/test1';

mysql> select * from action_bak limit 10 into outfile 'test1';

附:测试脚本

sql 复制代码
mysqldump -h120.55.189.188-udatawarehouse -pDTHS2015 datatest kingr1 >C:\data_dir\kingr1.txt
 
mysqldump -h120.55.189.188-udatawarehouse -pDTHS2015 logdata wechat_trace>C:\data_dir\wechat_trace.txt
 
mysql -h120.55.189.18-udatawarehouse -pDTHS2015 logdata -e "select * from wechat_trace limit8000"> C:\data_dir\wechat_trace_8000.txt
 
mysqldump -h120.55.189.188-udatawarehouse -pDTHS2015 logdata wechat_trace>C:\data_dir\wechat_trace.txt
相关推荐
谛凌19 分钟前
【物流管理系统 - IDEA&Java&Swing&MySQL】基于Java实现的物流管理系统导入IDEA教程
java·mysql·intellij-idea·swing·物流管理系统
Z3r4y32 分钟前
【adb】5分钟入门adb操作安卓设备
android·adb
chengxuyuan6666634 分钟前
下载并安装MySQL
数据库·mysql·adb
ljh125738 分钟前
【MySQL】第四章 表的操作
android·mysql·adb
TroubleMaker1 小时前
OkHttp源码学习之CertificatePinner
android·java·okhttp
运维潇哥2 小时前
容器化部署MySQL5.7数据库
adb
ytuglt2 小时前
android framework.jar 在应用中使用
android·java·jar
天才奇男子3 小时前
MySQL安装,配置教程
数据库·mysql
achirandliu3 小时前
安卓Namespace简介
android·安卓namespace简介
Yang-Never3 小时前
Shader -> RadialGradient圆心渐变着色器详解
android·java·kotlin·android studio