linux下通过mysqldump备份mysql数据库成sql文件

php中文网
发布: 2016-06-07 17:41:29
原创
1308人浏览过

linux下通过mysqldump备份mysql数据库成sql文件阶段1:傻瓜式全备份mysqldump-hip地址-uusername-ppassword-A~/name.sql此种情况将整个数据库(结构和数据)导出备

 linux下通过mysqldump备份mysql数据库成sql文件

阶段1:傻瓜式全备份

mysqldump -h ip地址 -uusername -ppassword -A >~/name.sql

此种情况将整个数据库(结构和数据)导出备份成一个sql文件

-----------------------------------------------------------------------------------------------------------------------------------------------

阶段2:适当的调整参数达到不同的备份效果

我们先help一下

mysqldump --help

由于help输出过多就不一一列举出来了

 

通过远程连接备份 

-h 需要备份服务器的地址 

-u 允许远程连接的账号 

-p允许远程连接账号的密码 

-A 全备份

 

常用参数的说明

-A, --all-databases 备份所有数据库

--add-drop-database 在每个create database 语句之前增加一个drop database。

--add-drop-table 在每个create table 语句之前增加一个drop table。

--add-locks 在每个表导出之前增加LOCK TABLES并且之后UNLOCK TABLE。(为了使得更快地插入到MySQL)

--default-character-set=name 设置导出数据的字符集

--opt   同--quick --add-drop-table --add-locks --extended-insert --lock-tables。应该给你为读入一个MySQL服务器的尽可能最快的导出。

-e, --extended-insert   使用全新多行INSERT语法。(给出更紧缩并且更快的插入语句)。生成的文件insert语句中回事批量的,提高导入时的速度

--hex-blob 使用十六进制格式导出二进制字符串字段。如果有二进制数据就必须使用本选项。影响到的字段类型有 BINARY、VARBINARY、BLOB。

--quick,-q 该选项在导出大表时很有用,它强制 mysqldump 从服务器查询取得记录直接输出而不是取得所有记录后将它们缓存到内存中

-t, --no-create-info 只导出数据

-d, --no-data 只导出结构

----------------------------------------------------------------------------------------------------------------------------------------------

阶段3:备份制定定数据库和制定数据库的某个表

mysqldump -h ip地址 -uusername -ppassword databasename >~/name.sql

mysqldump -h ip地址 -uusername -ppassword databasename tablename >~/name.sql

----------------------------------------------------------------------------------------------------------------------------------------------

阶段4.1:

通过读取文本来分库备份数据库成不同的sql文件

例如我们分别有数据库db1 db2 db3 db4 db5。。。。。。db100当我们每个库数据量都不小的时候需要按数据库分别备份,

我们也不可能100个库分别写成100个备份的脚本运行,这样我们就需要结合shell脚本中的循环语句来操作

cat filename.txt |while read i

do

备份脚本,例如:mysqldump -h ip地址 -uusername -ppassword  $i >~/name.sql

done

其中filename.txt中保存数据库的库名,每行一个。

通过这样的做法再结合linux的crond服务我们就可以自动备份了

阶段4.2

如果需要分库分表备份那该这么办呢

这时候做法和分库的时候一样,分别按每个库生成相应表的表明文件一行一个分别命名为db1.txt db2.txt db3.txt db4.txt db5.txt。。。。。。。db100.txt

通过两次循环分别进行分库分表的备份

 

cat filename.txt |while read i

do

mkdir $i

cat  $i.txt|while read a

do

备份脚本,例如:mysqldump -h ip地址 -uusername -ppassword  $i $a >$i/$a.sql

done

done

当然我们有时候需要记录下备份的时间

fn=$(date +"%Y-%m-%d_%H:%M")

Psky企业网站系统1.1.2
Psky企业网站系统1.1.2

Psky企业网站是基于PHP+MYSQL开发的一款企业官网宣传网站,支持PC、wap浏览。 主要功能包括导航管理、轮播新闻、单位动态、通知通报、单位简介、后台管理等。运行环境下载安装PHPStudy(小皮)即可。系统采用PHP语言(版本:7.3.4nts)和MYSQL(版本:5.7.26)数据库进行开发,安装PHPStudy(小皮)集成环境进行测试通过。安装步骤:1、导入SQL文件到PHPmyad

Psky企业网站系统1.1.2 2
查看详情 Psky企业网站系统1.1.2

 

cat filename.txt |while read i

do

mkdir $i

cat  $i.txt|while read a

do

备份脚本,美国空间,例如:mysqldump -h ip地址 -uusername -ppassword  $i $a >$i/$a$fn.sql

done

done

 

--------------------------------------------------------------------------------------------------------------------------------------------------

阶段5:

经过第4阶段之后我们的备份更加细致,那部分的数据出问题我们就恢复那部分的(虽然颗粒度还是有些粗)

但是我们是不是觉得第4阶段的备份还是很复杂,例如我们存库名和表明的文件就是一个庞大的工程,美国服务器,新建库我们得在库文件中添加一行

新建表我们得到某个库下面的表的文件中添加一条,这样既繁琐又容易出错,而且容易忘记,维护起来很麻烦。

现在我们有个办法可以让他自动列出库和库下的表

mysql -e

执行

mysql -e "show databases"

得到如下结果

+--------------------+

| Database           |

+--------------------+

| information_schema |

| mysql              |

| performance_schema |

| test               |

+--------------------+

但是这样的结果我们没法用,所需要去掉外围的条条框框的东西

mysql -e "show databases"|sed '1d'

information_schema

mysql

performance_schema

test

 

for db in `mysql -e "show databases"|sed '1d'`

do

备份脚本,例如:mysqldump -h ip地址 -uusername -ppassword $db >name.sql

done

参照这个我们同样可以分库分表备份

mysql databasename -e "show tables"|sed '1d'

 

fn=$(date +"%Y-%m-%d_%H:%M")

for db in `mysql -e "show databases"|sed '1d'`

do

mkdir $db

for tables in `mysql  $db -e "show tables"|sed '1d'`

do

备份脚本,例如:mysqldump -h ip地址 -uusername -ppassword $db $tables >$db/$tables$fn.sql

done

done

 

 

暂且完毕,请多指正,美国服务器,如有其它更好方式请留言,一起进步

本文出自 “天马行空” 博客,请务必保留此出处

相关标签:
最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号