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