备份内容包含创建表或装载表的sql语句,1、备份一个数据库.

下面将test数据库导出为test.txt文件,备份内容包含创建表或装载表的sql语句,1、备份一个数据库.,数据库备份程序,使用mysqldump命令,migrate执行,1、备份一个数据库.,数据库备份程序,1.导入数据库服务器上的txt文件,恢复MySQL服务器上面的txt格式文件(需要FILE权限

图片 14

一.概述

    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 客商名 -p 数据库名 表名 > 导出的文本名

2、能够用四个限令备份mysql,test八个数据库:

字符集文件的目录

登入Mysql

mysql -u root -p

mysql> set names utf8; (幸免乱码,先安装字符集)
mysql> use test;
mysql> source ~/Code/tmp/db1_ddl.sql
使用into outfile 和 load data infile命令
突发性,大家须要基于查询条件导出SQL,能够动用mysql语句:into outfile 和
load data infile。

同source命令, 都须求首先登场录mysql。

导出

select * from tb1 into outfile ‘/var/lib/mysql-files/outfile1’ fields
terminated by ‘|’ enclosed by ‘”‘ lines terminated by ‘\r\n’ ;
导入

load data infile “/var/lib/mysql-files/outfile1” replace into table tb1
fields terminated by ‘|’ enclosed by ‘”‘ lines terminated by ‘\r\n’
;
用这两条命令依旧有注意事项:

相隔符参数

田野先生s关键字钦赐了文件记段的剪切格式,假设用到这么些尤为重要字,MySQL深入分析器希望观望起码有下边包车型客车二个选用:

terminated by 分隔符:意思是以怎么着字符作为分隔符
enclosed by 字段括起字符
escaped by 转义字符
terminated by 描述字段的分隔符,默许情形下是tab字符( )
enclosed by 描述的是字段的括起字符。
escaped by 描述的转义字符。默许的是反斜杠(backslash: )
字符集设置

load data infile ‘/var/lib/mysql-files/outfile1’ replace into table tb1
character set utf8 fields terminated by ‘|’ enclosed by ‘”‘ lines
terminated by ‘\r\n’ ;
目录范围

mysqld 的secure_file_priv配置 ,用来限制LOAD_FILE()和LOAD
DATA和SELECT … ,INTO OUTFILE报表到钦点的目录。

导入导出一定是在设定的目录文件,不然会报错:E奥迪Q5ROEnclave 1290 (HY000):The MySQL
server is running with the –secure-file-priv option so it cannot
execute this statement

查阅配置

SELECT @@secure_file_priv;

常用参数
-A, –all-databases
导出全数数据库
–add-drop-database
在开立数据库以前先DROP数据库
–add-drop-table
在创建表从前先drop表,私下认可true
–add-locks
在insert语句前加锁,暗中同意true
–compact
导出越来越少的出口新闻(用于调节和测量试验)。去掉注释和头尾等结构
-c, –complete-insert
接纳完全的insert语句(蕴含列名称)。
-B, –databases
导出多少个数据库。参数前边所盛名字参量都被看成数据库名。导出文件中会有’USEdb_name;’
–default-character-set=name
设置暗许字符集
-e, –extended-insert
使用全部多个VALUES列的INSERT语法。那样使导出文件更加小,并加快导入时的进程,私下认可true
**–ignore-table=name **
忽略钦点的表不导出
–insert-ignore
在插入行时使用insert ignore
-l, –lock-tables
发轫导出前,锁定全体表
–dump-slave
将主库的binlog地方和文书名增添到导出数据的文书中,该参数在在从服务器上施行,也正是执行show
slave status.当设置为1时,将会以CHANGE
MASTE瑞鹰命令输出到数据文件;设置为2时,会在change前拉长注释。
–master-data[=#]
该选用将日前服务器的binlog的地方和文书名扩展到输出文件中(show master
status)。借使为1,将会输出CHANGE MASTE牧马人 命令;要是为2,输出的CHANGE
MASTEXC90命令前增添注释新闻。
-n, –no-create-db
只导出多少,不增添create database语句,私下认可false
-t, –no-create-info
只导出多少,不增添create table语句,私下认可false
-d, –no-data
不导出另外数据,只导出多少库表结构
-q, –quick
不缓冲查询,直接导出到专门的学问输出。暗许true
**–replace **
安排数据时用replace
–set-gtid-purged[=name]
是还是不是增加SET@@GLOBAL.GTID_PURGED,默认auto
–single-transaction
应用一致性的快速照相来导出多少,不锁表,默许false
–tables
覆盖–databases (-B)参数,钦点需求导出的表名
-w, –where=name
根据规范化导出,只可以导出单个表
-u -h -P -p
用户名,主机名,端口,密码

常用方法
1、导出全部库
mysqldump -uroot -p123 –single-transaction –all-databases
>all.sql
该命令会导出包含系统数据库在内的具有数据库
2、导出单个库
mysqldump -uroot -p123 –single-transaction test > test.sql
3、导出三个数据库
mysqldump -uroot -p123 –single-transaction –databases db1 db2>
db.sql
导出文件中会有’USE db1;USE db2′
4、导出单表
mysqldump -uroot -p123 –single-transaction test table_1 >
table_1.sql
5、导出多表
mysqldump -uroot -p123 –single-transaction test –tables table_1
table_2> table.sql
6、只导表结构
mysqldump -uroot -p123 –single-transaction test -d >
test_structure.sql
7、只导出多少
mysqldump -uroot -p123 –no-create-info –single-transaction
–skip-add-locks –compact -c –set-gtid-purged=OFF test t2 >t2.sql
8、遵照where条件导出
mysqldump -uroot -p123 –single-transaction test table_1 -w
“id<1000000” > table_1.sql

写得没有错的:

以上正是关于mysql导入导出命令的全方位介绍,希望对我们纯熟精晓mysql命令有所协理

在插入行时使用INSERT IGNORE语句.

django migrate 冲突消除

争辩起因, makemigrations 记录sql的生成,
migrate执行,四个人合作或一不留心,常常产生冲突。

  • 杀鸡取卵makemigrations对应冲突的脚本
  • 增量修改表结构

抑或从gz文件中回复

 3.备份数据库
       
用mysqldump命令(注意mysql的装置路线,即此命令的不二法门):
       
备份与导出的分别:导出的公文只是保存数据库中的数据;而备份,则是把数据库的结构,包罗数据、约束、索引、视图等整套另存为贰个文本。

只导出表结构

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文件。

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

       1、备份数据和表结构:
mysqldump -u 顾客名 -p密码 数据库名 > 备份文件名
#/usr/local/mysql/bin/   mysqldump -u root -p abc > abc.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 [密码] 数据库名 > 导出的文本名
导出表

 

自己商讨内部存款和储蓄器和开拓文件使用验证并脱离。

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

输出mysqldump版本消息并退出

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

mysqldump  -uroot -p –all-databases –skip-add-drop-table  (取消drop语句)

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

–flush-logs

mysqldump -uroot -p123456 mysql > mysql_backup.sql

–default-character-set

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

mysqldump  -uroot -p –host=localhost –all-databases –opt

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

4.回复数据库 数据文件
         1、首先建空数据库
mysql>create database abc;

如若未有一点名别的表或利用了—database或–all–database选项,则转储整个数据库。

使用REPLACE INTO 取代INSERT INTO.

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

–tz-utc

1、备份一个多少库.

1.导入数据库服务器上的txt文件

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

–plugin_dir

5、导出三个数额具有数据并用gz压缩

mysqldump  -uroot -p –all-databases –dump-slave=1

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

  导入有个别数据表

SELECT…INTO OUTFILE只可以导出数据,无法导出结构,日常和load
data联合使用。

–disable-keys

你或许感兴趣的稿子:

  • Mysql基础入门
    轻松学习Mysql命令
  • MySQL常用命令
    MySQL管理数据库和表的通令
  • MySQL最基本的一声令下使用汇总
  • Mysql常用命令汇总
  • Mysql命令大全(完整版)
  • MySQL查看表和清空表的常用命令总括
  • mysqldump命令导入导出数据库方法与实例汇总
  • 详解MySQL中ALTESportage命令的施用
  • Windows下通过DOS命令登入MYSQL的法子
  • MySql命令实例汇总

mysqldump  -uroot -p –host=localhost –all-databases –master-data=1;

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

–create-options,  -a

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

1.mysqldump
        
是mysql用于转存款和储蓄数据库的实用程序。它最首要爆发贰个SQL脚本,当中蕴藏从头重新创造数据库所必需的下令CREATE
TABLE INSERT等。

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

mysqldump  -uroot -p –host=localhost –all-databases –no-data

mysqldump是mysql用于转存款和储蓄数据库的实用程序。它根本发生贰个SQL脚本,个中带有从头重新创制数据库所不可或缺的一声令下CREATE
TABLE INSERT等。下边就让大家一块上学啊!

mysqldump  -uroot -p –host=localhost –all-databases –routines

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

  mysqldump字符集设置

 

–default_auth

在底下的例子中,生成多少个文书,各值用逗号隔离。这种格式能够被众多程序选取

mysqldump  -uroot -p –all-databases–skip-extended-insert   (撤销选项)

3、备份全体数据库:

 

四、导入导出格式

mysqldump  -uroot -p –all-databases –allow-keywords

二、SELECT…INTO OUTFILE SELECT…INTO OUTFILE
‘file_name’格局的SELECT能够把被挑选的行写入四个文书中,该公文被成立到服务器主机上。

假设存在主键,可能第多个独一键,对各类表的记录进行排序。在导出MyISAM表到InnoDB表
       时有效,但会使得导出办事开销十分短日子。 

这里备份了database mysql的结议和数目,生成的sql文件不会有创立database
mysql的口舌。

  导入全部库
 mysql命令行
 mysql>source
all.sql;

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

–compatible

SELECT…INTO OUTFILE是LOAD DATA
INFILE的补语;用于语句的exort_options部分的语法富含部分FIELDS和LINES子句,那么些子句与LOAD
DATA INFILE语句同有的时候间利用。

 

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

mysql>load data infile ‘文件的相对化路线’
          
>into table 表名 
          
> fields terminated by’分隔符’ 
         
 > lines terminated by’换行符’;
2.导出数据库音讯 到txt文件
mysql>select ……           >into outfile ‘文件名’          > fields terminated by’分隔符’          > **lines terminated by’换行符’;

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

mysqldump  –help

4、导出mysql这一个数据库的构造

–skip-opt

由character_set_database系统变量提醒的字符集被用来解释文件中的音信。

若不点名目录,默许放在所在库,对应的数据库目录下
内定目录必须是相对路线,确定保障mysql客户对指标文件具备写权限
linux 日常景观下载 var/lib/mysql  中**

为每一种表在加以路线成立tab分割的文本文件。注意:仅仅用于mysqldump和mysqld
        服务器运营在同等机器上。

–include-master-host-port

mysqldump  -uroot -p –all-databases –flush-privileges

对此每种表,用/*!40000 ALTER TABLE tbl_name DISABLE KEYS */;和/*!40000 ALTER TABLE tbl_name ENABLE KEYS */;语句引用INSERT语句。那样可以越来越快地导入dump出来的文件,因为它是在插入全部行后成立索引的。该选项只契合MyISAM表,默以为展开状态。

mysqldump  -uroot -p –host=localhost –all-databases –insert-ignore

应用完全的insert语句(包涵列名称)。这么做能增长插入功用,然而恐怕会遭到max_allowed_packet参数的熏陶而致使插入退步。

–delayed-insert

mysqldump -u用户名 -p密码 -h主机 数据库 < 路径

mysqldump  -uroot -p –all-databases

–user, -u

   方法一:
(1)选拔数据库
mysql>use abc;
(2)设置数据库编码
mysql>set names utf8;
(3)导入数据(注意sql文件的路径)
mysql>source /home/abc/abc.sql;

mysqldump  -uroot -p –all-databases –complete-insert

–databases,  -B

–debug-check

        3.备份整个表
mysqldump -u root 数据库名 表名字>备份文件名; 

mysql -uroot -p1234 db1 < c:\a.txt

mysqldump  -uroot -p –all-databases 

该选用将binlog的职责和文书名增加到输出文件中。要是为1,将会输出CHANGE MASTEENCORE 命令;假若为2,输出的CHANGE  MASTE福睿斯命令前增添注释音讯。该选项将开采–lock-all-tables 选项,除非–single-transaction也被钦定(在这种状态下,全局读锁在早伊始出时收获不够长的时光;别的内容仿效上边包车型地铁–single-transaction选项)。该选项活动关闭–lock-tables选项。

连年数据库密码

mysqldump  -uroot -p –host=localhost –all-databases –net_buffer_length=1024

–no-create-info,  -t

在导出进度中忽略出现的SQL错误。

mysqldump  -uroot -p –host=localhost –all-databases –no-autocommit

–dump-slave

–result-file,  -r