mysql sqldump 备份

Posted leolzi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql sqldump 备份相关的知识,希望对你有一定的参考价值。

参考:https://www.cnblogs.com/linuxk/p/9371475.html

1. windows 下面 创建  dump.bat 文件:

文件内容如下

"C:\\Program Files\\MariaDB 10.4\\bin\\mysqldump" -u root -p123456 metadata > D:\\DB\\mysql\\metadata.sql

备注: 这个是mariadb 的路径:C:\\Program Files\\MariaDB 10.4\\bin

用户名  root  密码:123456

备份数据库名称:metadata

备份到文件 D:\\DB\\mysql\\metadata.sql

运行文件就可以生成备份文件

2、恢复操作

语法(Syntax):
mysql -u<username> -p<password> <dbname> < /opt/mytest_bak.sql   #库必须保留,空库也可
说明:指定dbname,相当于use <dbname>

3、-B参数备份和恢复(建议使用)


1)备份操作
a、备份
mysqldump -uroot -p\'123456\' -B mytest > /mnt/mytest_bak_B.sql

说明:加了-B参数后,备份文件中多的Create database和use mytest的命令
加-B参数的好处:
加上-B参数后,导出的数据文件中已存在创建库和使用库的语句,不需要手动在原库是创建库的操作,在恢复过程中不需要手动建库,可以直接还原恢复。2)恢复操作
a、删除mytest库
mysql -uroot -p\'123456\' -e "drop database mytest;"
b、恢复数据
(1)使用不带参数的导出文件导入(导入时不指定要恢复的数据库),报错
mysql -uroot - p\'123456\' < /mnt/mytest_bak.sql   
ERROR 1046 (3D000) at line 22: No database selected
(2)使用带-B参数的导出文件导入(导入时也不指定要恢复的数据库),成功
mysql -uroot -p\'123456\' < /mnt/mytest_bak_B.sql 
c、查看数据
mysql -uroot -p\'123456\' -e "select * from mytest.student;"
 

3、指定压缩命令来压缩备份文件


1)备份
mysqldump -uroot -p\'123456\'  -B mytest | gzip > /mnt/mytest_bak_.sql.gz
说明:
mysqldump导出的文件是文本文件,压缩效率很高

4、备份多个数据库


1)说明
通过-B参数指定相关数据库,每个数据库名之前用空格分格。当使用-B参数后,将所有数据库全部列全,则此时等同于-A参数。
(2)备份
mysqldump -uroot -p\'123456\' -B mytest wiki | gzip > /mnt/mytestAndWiki_bak.sql.gz
 
5. 示例
@echo off
set mysqldump="E:\\mariadb-10.4.7\\bin\\mysqldump"
set date_string=%date:~0,4%_%date:~5,2%_%date:~8,2%
set back_path=E:\\mysql_bf
if not exist %back_path% md %back_path%
set database=auth-center
set username=root
set password=123456
set password2=123qwe

set file_auth=%back_path%\\auth-%date_string%
set file_user=%back_path%\\user-%date_string%
set file_jczy=%back_path%\\jczy-%date_string%
set file_eprevent=%back_path%\\eprevent-%date_string%
set file_portal=%back_path%\\portal-%date_string%
set file_quality=%back_path%\\quality-%date_string%
set file_etl=%back_path%\\etl-%date_string%
set file_consultation=%back_path%\\consultation-%date_string%


%mysqldump% -h192.168.59.126 -P3106  -u %username% --password=%password%  auth-center >%file_auth%.sql
%mysqldump%  -h192.168.59.126 -P3106  -u %username% --password=%password%  user-center >%file_user%.sql
%mysqldump%  -h192.168.59.126 -P3106  -u %username% --password=%password%  jczy_gis >%file_jczy%.sql

%mysqldump%  -h192.168.59.3 -P3306  -u %username% --password=%password%  eprevent >%file_eprevent%.sql
%mysqldump%  -h192.168.59.3 -P3306  -u %username% --password=%password%  portal >%file_portal%.sql
%mysqldump%  -h192.168.59.3 -P3306  -u %username% --password=%password%  quality-center >%file_quality%.sql
%mysqldump%  -h192.168.59.3 -P3306  -u %username% --password=%password%  etl >%file_etl%.sql
%mysqldump%  -h192.168.59.3 -P3306  -u %username% --password=%password%  consultation >%file_consultation%.sql

 



以上是关于mysql sqldump 备份的主要内容,如果未能解决你的问题,请参考以下文章

mysql 使用sqldump来进行数据库还原

liunx下MySQL备份解决方案

Xcode 4.6 的备份代码片段

mysql转储单表

mysql

douphp后台注入