mysql 开辟晋级篇体系 35 工具篇 mysqldump(数据导出

作者:计算机专家

一.概述

    mysqldump顾客端工具是用来备份数据库或在分裂数据库之间开展多少迁移。备份内容包涵成立表或装载表的sql语句。mysqldump近期是mysql中最常用的备份工具。
  二种方法来调用mysqldump,命令如下:
图片 1
  上海教室第一种是备份单个数据库大概库中一些数据表(从备份格局上,比sqlserver要灵活一些,尽管sql server有文件组备份)。第三种是备份钦命的一个可能五个数据库。第两种是备份全体数据库。
  1.连接导出,上边将test数据库导出为test.txt文件,导出地点在data目录下

[root@hsr data]# /usr/local/mysql/bin/mysqldump -uroot -p test > test.txt

图片 2图片 3

  上航海用体育场面展现: 导出到test.txt文件里, 数据有几部份sql语句,包涵:(1)有咬定表存在删除,(2)导出表结议和表数据,(3)导前加table write锁,导完释放。通过上边扶助命令能够看见暗中同意设置。

 [root@hsr data]# /usr/local/mysql/bin/mysqldump --help

图片 4  2. 出口内容采取

-n, --no-create-db

不包含数据库的创建语句

-t, --no-create-info

不包含数据表的创建语句

-d,--no-data

不包含数据

    下面演示导出test库的a表,不含有数据:

[root@hsr data]# /usr/local/mysql/bin/mysqldump -uroot -p -d  test a > a.txt

图片 5

    上海教室彰显,使用more 查看a.txt,内容唯有表结构。
  3. 应用 --compact选项使得结果简洁,不包蕴暗中同意选项中的种种注释,上边依旧演示a表:

[root@hsr data]# /usr/local/mysql/bin/mysqldump -uroot -p --compact  test a > a.txt

图片 6

  4. 行使-c --complete-insert 选项,使insert语句包含字段名称

[root@hsr data]# /usr/local/mysql/bin/mysqldump -uroot -p -c --complete-insert  test b > b.txt

图片 7

  5. 使用-T选项将钦赐数量表中的数据备份为单独的多少文本和建表sql, 八个公文。

     [root@hsr data]# midir bak
        [root@hsr data]# /usr/local/mysql/bin/mysqldump -uroot -p   test b -T ./bak
        Enter password: 
        mysqldump: Got error: 1290: The MySQL server is running with the --secure-file-priv option so it cannot execute 
                      this statement when executing 'SELECT INTO OUTFILE'

 --上面的语句报错,查找错误信息中的字段设置
SHOW VARIABLES LIKE '%secure%';

图片 8

    secure-file-priv参数是用来限制LOAD DATA, SELECT ... OUTFILE, and LOAD_FILE()传到哪些钦赐目录的。

                   (1) 当secure_file_priv的值为null ,表示限制mysqld 不一样意导入|导出。

                   (2) 当secure_file_priv的值为/tmp/ ,表示限制mysqld 的导入|导出只可以发出在/tmp/目录下。

                   (3 )当secure_file_priv的值未有具体值时,表示不对mysqld 的导入|导出做限定。

    上边来安装my.cnf文件,加上导入地点,地点在/tmp 目录下,如下图:
图片 9图片 10

-- 再次导出,导出路径在/tmp下
[root@hsr data]#  /usr/local/mysql/bin/mysqldump -uroot -p   test b -T /tmp

图片 11

    使用more 查看文件,b.sql中含有了表架构, b.txt包涵数据。
图片 12

图片 13

   6.  字符集选项

    --default-character-set=name 选项能够安装导出的客商端字符集。那一个选项很关键,假使客商端字符集和数据库字符集不相同,有望变成乱码,使得备份文件无法苏醒。

[root@hsr data]#  /usr/local/mysql/bin/mysqldump -uroot -p  --compact --default-character-set=utf8 test >test.txt

    图片 14

  7. 别的常用选项

    (1) -F --flush-logs(备份前刷新日志)  备份前将闭馆旧日志,生成新日志。复苏的时候平昔从新日志早先开展重做,方便东山复起进程。

    (2) -l --lock-tables(给持有表加读锁) 使得数据不能够被更新,进而使备份的数额保持一致性(能够引致大批量长日子阻塞)。

mysql导入导出命令解析,mysql导入导出解析

mysqldump是mysql用于转存款和储蓄数据库的实用程序。它最首要产生一个SQL脚本,在这之中蕴藏从头重新创建数据库所要求的一声令下CREATE TABLE INSERT等。下边就让大家一起念书啊!

一、mysqldump:数据库备份程序
 有3种艺术来调用mysqldump:

mysqldump [options] db_name [tables]
mysqldump [options] ---database DB1 [DB2 DB3...]
mysqldump [options] --all--database

假设未有一些名其余表或选拔了---database或--all--database选项,则转储整个数据库。

1、备份一个数码库.

mysqldump -uroot -p123456 mysql > mysql_backup.sql

那边备份了database mysql的布局和数目,生成的sql文件不会有开创database mysql的言辞。

2、能够用贰个下令备份mysql,test多个数据库:

mysqldump -u root -p123456 --database mysql test > my_databases.sql

变动的sql文件有开创database mysql和test的言语

3、备份全数数据库:

mysqldump -u root -p123456 --all-databases > all_databases.sql

4、导出mysql那几个数据库的布局

 mysqldump -u root -p123456 -d --add-drop-table mysql > mysql_define.sql

5、导出二个数目有所数据并用gz压缩

mysqldump -u root -p123456 mysql | gzip > mysql.sql.gz

能够这么将转储文件读回到服务器:

mysql db_name < backup-file.sql
mysql -e "source /path-to--backup/backup-file.sql" db_name

依旧从gz文件中回复

gunzip -f < mysql.sql.gz | mysql -u root -p123456 test

 

二、SELECT...INTO OUTFILE SELECT...INTO OUTFILE 'file_name'情势的SELECT可以把被选用的行写入贰个文书中,该公文被制造到服务器主机上。

SELECT...INTO OUTFILE是LOAD DATA INFILE的补语;用于语句的exort_options部分的语法满含一些FIELDS和LINES子句,那一个子句与LOAD DATA INFILE语句同临时间接选举取。

在底下的事例中,生成二个文书,各值用逗号隔开分离。这种格式能够被不菲主次选用

SELECT * INTO OUTFILE '/tmp/result.txt' 
FIELDS TERMINATED BY ',' 
OPTIONALLY ENCLOSED BY '"' 
LINES TERMINATED BY 'n'
FROM mysql.user;

将mysql数据库的user表的多少导出到/tmp/result.txt

SELECT...INTO OUTFILE只好导出数据,无法导出结构,日常和load data联合利用。

 

三、LOAD DATA INFILE
LOAD DATA INFILE语句用于高速地从多个文件文件中读取行,并装入八个表中。文件名称必需为贰个文字字符串。

由character_set_database系统变量提示的字符集被用于解释文件中的新闻。

LOAD DATA LOCAL INFILE '/tmp/result.txt' INTO TABLE test.user
FIELDS TERMINATED BY ',' 
OPTIONALLY ENCLOSED BY '"' 
LINES TERMINATED BY 'n'

把/tmp/result.txt的多寡导入到test数据库的user表。

四、导入导出格式

FIELDS TERMINATED BY ','   字段间分割符采用,号
OPTIONALLY ENCLOSED BY '"'     用"号将字段包围,对数值型无效
LINES TERMINATED BY 'n'       记录间隔符采用n换行符

如上就是关于mysql导入导出命令的百分百介绍,希望对大家熟稔通晓mysql命令有所援助

mysqldump是mysql用于转存款和储蓄数据库的实用程序。它至关心器重要发生一个SQL脚本,其中蕴涵从头重新创制数据...

只导出表结构

mysqldump -u 客商名 -d -p 数据库名 表名 > 导出的文本名

导入到远程服务器
动用管道命令,仍是能够将导出的数据间接导入到远程的服务器上,前提是服务器能够相互拜访。

mysqldump -u 客户名 -p 数据库名 | mysql -h 远程服务器HOST 远程数据库名
SQL文件压缩备份&还原
mysqldump -u 客户名 -d -p 数据库名 | gzip > 文件名.sql.gz

gunzip < 文件名.sql.gz | mysql -u 用户名 -p 数据库
示例SQL

create database test;
use test;

create table tb1(
f1 int auto_increment,
f2 varchar(50),
primary key(f1)
)ENGINE= INNODB default charset = utf8;

insert into tb1 values(null, 'a');
insert into tb1 values(null, 'b');
insert into tb1 values(null, 'c');
insert into tb1 values(null, 'd');

create table tb2(
t1 int auto_increment,
t2 varchar(50),
primary key(t1)
)ENGINE= INNODB default charset = utf8;

insert into tb2 values(null, 'a');
insert into tb2 values(null, 'b');
insert into tb2 values(null, 'c');
insert into tb2 values(null, 'd');

select * from tb1;
select * from tb2;
mysqldump -uhomestead -p testdb > test_ddl.sql
mysqldump -uhomestead -p test tb1 > ~/Code/tmp/db1_ddl.sql
mysqldump -uhomestead -p test -d tb1 > ~/Code/tmp/db1_ddl.sql

mysqldump -uhomestead -d -p test | gzip > backup-file.sql.gz
gunzip < backup-file.sql.gz | mysql -uhomestead -p test
使用source 命令
能够在mysql调控台里,加载实施SQL文件。

mysql 常用命令

mysql 导入导出的命令。

使用mysqldump命令
mysqldump 是命令行工具,首要用来mysql备份和回复数据。这么些命令使用起来方便,直接在终端实践。

Dumping structure and contents of MySQL databases and tables.
Usage: mysqldump [OPTIONS] database [tables]
OR mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...]
OR mysqldump [OPTIONS] --all-databases [OPTIONS]

mysqldump 的首要参数:

-h, --host=ip 主机地址
-u, --user=name 登入顾客名
-P, --port=# Mysql连接端口
-p, --password[=name] Mysql密码。倘诺不给定值,直接回车,会提醒输入密码
-d, --no-data 不带有行消息,只导出表结构

这个命令都无须特意去记,推行 mysqldump --help , 就足以查询利用援救。

导出整个表(富含数据)
mysqldump -u 用户名 -p [密码] 数据库名 > 导出的文本名
导出表

本文由杏彩发布,转载请注明来源

关键词: