Menu
Woocommerce Menu

数据库备份程序3522vip靠谱吗:,直接在终端执行

0 Comment


一.概述

    mysqldump客户端工具是用来备份数据库或在区别数据库之间开展多少迁移。备份内容蕴含成立表或装载表的sql语句。mysqldump近日是mysql中最常用的备份工具。
  三种办法来调用mysqldump,命令如下:
3522vip靠谱吗 1
  上图第生龙活虎种是备份单个数据库也许库中一些数据表(从备份情势上,比sqlserver要灵活一些,尽管sql
server有文件组备份卡塔尔国。第三种是备份钦定的二个也许多个数据库。第三种是备份全数数据库。
  1.连接导出,上面将test数据库导出为test.txt文件,导出地方在data目录下

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

3522vip靠谱吗 23522vip靠谱吗 3

  上航海用体育场所彰显: 导出到test.txt文件里,
数占有几部份sql语句,满含:(1)有咬定表存在删除,(2)导出表结商谈表数据,(3)导前加table
write锁,导完释放。通过下边辅助命令能够见到私下认可设置。

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

3522vip靠谱吗 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

3522vip靠谱吗 5

    上海体育场合显示,使用more 查看a.txt,内容独有表结构。
  3. 接受–compact选项使得结果简洁,不包涵暗中同意选项中的种种注释,上边依旧演示a表:

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

3522vip靠谱吗 6

  4. 利用-c –complete-insert 选项,使insert语句包涵字段名称

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

3522vip靠谱吗 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%';

3522vip靠谱吗 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 目录下,如下图:
3522vip靠谱吗 93522vip靠谱吗 10

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

3522vip靠谱吗 11

    使用more 查看文件,b.sql中蕴含了表框架结构, b.txt饱含数据。
3522vip靠谱吗 12

3522vip靠谱吗 13

   6.  字符集选项

    –default-character-set=name
选项能够安装导出的顾客端字符集。这一个选项很要紧,假设顾客端字符集和数据库字符集不相仿,有非常的大希望变为乱码,使得备份文件不只怕恢复生机。

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

    3522vip靠谱吗 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 数据库名 表名 > 导出的公文名

 

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 [密码] 数据库名 > 导出的文本名
导出表

一而再接二连三数据库密码

django migrate 冲突清除

冲突起因, makemigrations 记录sql的变动,
migrate推行,五人搭档或一不留神,平时以致冲突。

  • 缓和makemigrations对应冲突的本子
  • 增量改良表结构

–disable-keys

只导出表结构

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 -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奥迪Q5RO奥迪Q3 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
MASTELAND命令输出到数据文件;设置为2时,会在change前增加注释。
–master-data[=#]
该选拔将最近服务器的binlog的岗位和文件名增至输出文件中(show master
status)。借使为1,将会输出CHANGE MASTERAV4 命令;假诺为2,输出的CHANGE
MASTE奥迪Q5命令前增加注释消息。
-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

写得井井有理的:

mysqldump  -uroot -p –host=localhost –all-databases –protocol=tcp

**6.启用二进制日志(binlog) 
利用 binlog 的方法相对来讲越来越灵敏,省心省时,何况还足以援救增量备份。 
启用 binlog 时必需要重启 mysqld。首先,关闭 mysqld,张开my.cnf,参与以下几行: 
server-id = 1 
log-bin = binlog 
log-bin-index = binlog.index 
接下来运行 mysqld 就能够了。运行进程中会发生 binlog.000001 以至binlog.index,后面包车型大巴文书是 mysqld 
笔录全体对数据的翻新操作,前面包车型大巴文本则是具备 binlog
的目录,都无法随便删除。关于 binlog 的消息请查看手册。 
内需备份时,能够先实行一下 SQL 语句,让 mysqld 终止对当前 binlog 
的写入,就能够把公文平素备份,那样的话就能够实现增量备份的指标了: FLUSH
LOGS;借使是备份复制系统中的从服务器,还应有备份 
master.info 和 relay-log.info 文件。 
备份出来的 binlog 文件能够用 MySQL 提供的工具 mysqlbinlog
来查阅,如: 
/usr/local/mysql/bin/mysqlbinlog
/tmp/binlog.000001该工具允许你出示内定的数据库下的具有 
SQL 语句,並且还足以界定期限,相当的有益,详细的请查看手册。 
余烬复起时,能够选拔相像以下语句来产生: /usr/local/mysql/bin/mysqlbinlog
/tmp/binlog.000001 
| mysql -uyejr -pyejr db_name把 mysqlbinlog 输出的 SQL
语句直接当做输入来实施它。 
生机勃勃经你有闲暇的机械,不要紧选取这种艺术来备份。由于作为 slave
的机器品质供给相对不是那么高,因而费用低,用低本钱就能够兑现增量备份并且仍是可以平均分摊部分数额查询压力,何乐而不为呢? 

起来导出前,锁定全部表。用READ  LOCAL锁定表以允许MyISAM表并行插入。对于支撑工作的表举个例子InnoDB和BDB,–single-transaction是贰个更加好的筛选,因为它根本无需锁定表。

–add-drop-database

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

mysqldump  -uroot -p –host=localhost –all-databases –skip-quick

 

mysqldump  -uroot -p –host=localhost test test –tab=”/tmp/mysql”  –lines-terminated-by=”##”

钦命连接mysql的socket文件地方,默许路线/tmp/mysql.sock

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

–compress, -C

mysqldump备份:

禁用–opt选项.

出口三种平台音讯。

   方法一:
(1卡塔尔国选用数据库
mysql>use abc;
(2卡塔 尔(阿拉伯语:قطر‎设置数据库编码
mysql>set names utf8;
(3卡塔 尔(英语:State of Qatar)导入数据(注意sql文件的路径卡塔 尔(阿拉伯语:قطر‎
mysql>source /home/abc/abc.sql;

mysqldump  -uroot -p –all-databases  –character-sets-dir=/usr/local/mysql/share/mysql/charsets

不导出钦定表。钦命忽视三个表时,要求重新多次,每回多少个表。每种表必需同期钦点数据库和表名。比方:–ignore-table=database.table1 –ignore-table=database.table2 ……

mysqldump  -uroot -p –host=localhost –all-databases –no-create-info

恢复(导入)命令:

 

导出全体表空间。

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

导出几个数据库。参数前边所著名字参量都被当做数据库名。

mysqldump  -uroot -p –all-databases –apply-slave-statements

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

输出debug消息,用于调节和测验。私下认可值为:d:t:o,/tmp/mysqldump.trace

–all-tablespaces  , -Y

–result-file,  -r

接纳的总是合同,包含:tcp, socket, pipe, memory.

–password, -p

外加警示和错误音信到给定文件

导出更加少的输出音讯(用于调节和测验)。去掉注释和头尾等组织。能够采用选用:–skip-add-drop-table  –skip-add-      
locks –skip-comments –skip-disable-keys

出口文件中的各样字段用给定字符接收性包裹。与–tab选项联合行使,不能够用来–databases和–all-databases选项

–no-create-info,  -t

2、只备份表结构
mysqldump -u 用户名 -p密码 -d 数据库名 > 数据库名.sql
#/usr/local/mysql/bin/   mysqldump -uroot -p -d abc > abc.sql

–routines, -R

 系统命令行
 mysql
-uusername -ppassword db1 < tb1tb2.sql
 或mysql命令行
 mysql>
 user
db1;
 source
tb1tb2.sql;
 

mysqldump  -uroot -p –all-databases  (暗中同意增多drop语句)

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

–port, -P

–comments

1.mysqldump
        
是mysql用于转存款和储蓄数据库的实用程序。它最首要产生一个SQL脚本,此中满含从头重新创制数据库所不可缺少的一声令下CREATE
TABLE INSERT等。

输出文件中的各样字段用给定字符包裹。与–tab选项联合利用,不能够用来–databases和–all-databases选项

点名连接的客户名。

不导出任何表空间音讯。

 

允许创设是重大词的列名字。那由表名前缀于每种列名做到。

mysqldump  -uroot -p –all-databases 

mysqldump  -uroot -p –all-databases –events

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

 

–extended-insert,  -e

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

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

–complete-insert,  -c

对于种种表,用/*!40000 ALTER TABLE tbl_name DISABLE KEYS */;和/*!40000 ALTER TABLE tbl_name ENABLE KEYS */;语句援用INSERT语句。那样能够越来越快地导入dump出来的文本,因为它是在插入全体行后创制索引的。该选项只相符MyISAM表,默以为张开状态。

–protocol

覆盖–databases (-B)参数,钦赐须要导出的表名。

案例:

在客商端和服务器之间启用压缩传递全数音信

导出XML格式.

为各样表在加以路径创造tab分割的公文文件。注意:仅仅用于mysqldump和mysqld
        服务器运营在长期以来机器上。

mysqldump  -uroot -p –all-databases

导出全体数据库。

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

mysqldump  -uroot -p –all-databases  (暗许记录注释)

mysqldump  -uroot -p –all-databases –debug

mysqldump  -uroot -p –all-databases –skip-add-locks   (取消LOCK语句)
–allow-keywords

–quote-names,-Q

mysqldump  –help

 3.备份数据库
       
用mysqldump命令(注意mysql的装置路线,即此命令的不二等秘书诀卡塔尔:
       
备份与导出的差距:导出的文本只是保存数据库中的数据;而备份,则是把数据库的结构,包涵数据、节制、索引、视图等全套另存为二个文书。

mysqldump  -uroot -p –all-databases –compress

mysqldump  -uroot -p –all-databases

发表评论

电子邮件地址不会被公开。 必填项已用*标注

相关文章

网站地图xml地图