搜索
首页数据库mysql教程 linux下通过mysqldump备份mysql数据库成sql文件

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")

 

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

 

 

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

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

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
MySQL与Sqlite有何不同?MySQL与Sqlite有何不同?Apr 24, 2025 am 12:12 AM

MySQL和SQLite的主要区别在于设计理念和使用场景:1.MySQL适用于大型应用和企业级解决方案,支持高性能和高并发;2.SQLite适合移动应用和桌面软件,轻量级且易于嵌入。

MySQL中的索引是什么?它们如何提高性能?MySQL中的索引是什么?它们如何提高性能?Apr 24, 2025 am 12:09 AM

MySQL中的索引是数据库表中一列或多列的有序结构,用于加速数据检索。1)索引通过减少扫描数据量提升查询速度。2)B-Tree索引利用平衡树结构,适合范围查询和排序。3)创建索引使用CREATEINDEX语句,如CREATEINDEXidx_customer_idONorders(customer_id)。4)复合索引可优化多列查询,如CREATEINDEXidx_customer_orderONorders(customer_id,order_date)。5)使用EXPLAIN分析查询计划,避

说明如何使用MySQL中的交易来确保数据一致性。说明如何使用MySQL中的交易来确保数据一致性。Apr 24, 2025 am 12:09 AM

在MySQL中使用事务可以确保数据一致性。1)通过STARTTRANSACTION开始事务,执行SQL操作后用COMMIT提交或ROLLBACK回滚。2)使用SAVEPOINT可以设置保存点,允许部分回滚。3)性能优化建议包括缩短事务时间、避免大规模查询和合理使用隔离级别。

在哪些情况下,您可以选择PostgreSQL而不是MySQL?在哪些情况下,您可以选择PostgreSQL而不是MySQL?Apr 24, 2025 am 12:07 AM

选择PostgreSQL而非MySQL的场景包括:1)需要复杂查询和高级SQL功能,2)要求严格的数据完整性和ACID遵从性,3)需要高级空间功能,4)处理大数据集时需要高性能。PostgreSQL在这些方面表现出色,适合需要复杂数据处理和高数据完整性的项目。

如何保护MySQL数据库?如何保护MySQL数据库?Apr 24, 2025 am 12:04 AM

MySQL数据库的安全可以通过以下措施实现:1.用户权限管理:通过CREATEUSER和GRANT命令严格控制访问权限。2.加密传输:配置SSL/TLS确保数据传输安全。3.数据库备份和恢复:使用mysqldump或mysqlpump定期备份数据。4.高级安全策略:使用防火墙限制访问,并启用审计日志记录操作。5.性能优化与最佳实践:通过索引和查询优化以及定期维护兼顾安全和性能。

您可以使用哪些工具来监视MySQL性能?您可以使用哪些工具来监视MySQL性能?Apr 23, 2025 am 12:21 AM

如何有效监控MySQL性能?使用mysqladmin、SHOWGLOBALSTATUS、PerconaMonitoringandManagement(PMM)和MySQLEnterpriseMonitor等工具。1.使用mysqladmin查看连接数。2.用SHOWGLOBALSTATUS查看查询数。3.PMM提供详细性能数据和图形化界面。4.MySQLEnterpriseMonitor提供丰富的监控功能和报警机制。

MySQL与SQL Server有何不同?MySQL与SQL Server有何不同?Apr 23, 2025 am 12:20 AM

MySQL和SQLServer的区别在于:1)MySQL是开源的,适用于Web和嵌入式系统,2)SQLServer是微软的商业产品,适用于企业级应用。两者在存储引擎、性能优化和应用场景上有显着差异,选择时需考虑项目规模和未来扩展性。

在哪些情况下,您可以选择SQL Server而不是MySQL?在哪些情况下,您可以选择SQL Server而不是MySQL?Apr 23, 2025 am 12:20 AM

在需要高可用性、高级安全性和良好集成性的企业级应用场景下,应选择SQLServer而不是MySQL。1)SQLServer提供企业级功能,如高可用性和高级安全性。2)它与微软生态系统如VisualStudio和PowerBI紧密集成。3)SQLServer在性能优化方面表现出色,支持内存优化表和列存储索引。

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

螳螂BT

螳螂BT

Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

EditPlus 中文破解版

EditPlus 中文破解版

体积小,语法高亮,不支持代码提示功能

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

功能强大的PHP集成开发环境

安全考试浏览器

安全考试浏览器

Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)