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
暂且完毕,请多指正,美国服务器,如有其它更好方式请留言,一起进步
本文出自 “天马行空” 博客,请务必保留此出处

热AI工具

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

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

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

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

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

有很多Linux初学者经常问起的问题,“Linux有任务管理器吗?”,“怎样在Linux上打开任务管理器呢?”来自Windows的用户都知道任务管理器非常有用。你可以在Windows中按下Ctrl+Alt+Del打开任务管理器。这个任务管理器向你展示了所有的正在运行的进程和它们消耗的内存,你可以从任务管理器程序中选择并杀死一个进程。当你刚使用Linux的时候,你也会寻找一个在Linux相当于任务管理器的一个东西。一个Linux使用专家更喜欢使用命令行的方式查找进程和消耗的内存等等,但是你不用必须

zabbix对中文的支持不是很好,但为了管理方面有时候我们还是会选择中文,在zabbix监控的web界面,图形图标下面的中文会显示一个个小方块,这样是不正确的,需要下载字体。例如“微软雅黑”,“微软雅黑.ttf”命名为“msyh.ttf”,将下载的字体上传到/zabbix/fonts/字体下修改/zabbix/include/defines.inc.php文件中的两处define('ZBX_GRAPH_FONT_NAME','DejaVuSans');define('ZBX_FONT_NAME'

你知道吗,如何在Linux系统上查看帐户的创建日期?如果知道,那么有些什么办法。你成功了么?如果是的话,该怎么做?基本上Linux系统不会跟踪这些信息,因此,获取这些信息的替代方法是什么?你可能会问为什么我要查看这个?是的,在某些情况下,你可能需要查看这些信息,那时就会对你会有帮助。可以使用以下7种方法进行验证。使用/var/log/secure使用aureport工具使用.bash_logout使用chage命令使用useradd命令使用passwd命令使用last命令方式1:使用/var/l

1、从网上找到wingdings、wingdings2、wingdings3、Webdings、MTExtra这些字体2、进入主文件夹,按Ctrl+h键(显示隐藏文件),查看有没有.fonts文件夹,如果没有就创建一个3、把下载下来的wingdings、wingdings2、wingdings3、Webdings、MTExtra这些字体,复制到主文件夹下的.fonts文件夹里,再去启动wps看看还有没有“系统缺失字体……”提醒对话框,没有就成功了! 注意事项:wingdings、wingdin

全系统安装如果你在系统范围内安装字体,那么它可以让所有用户使用。此方式的最佳方法是使用官方软件库中的RPM软件包。开始前打开FedoraWorkstation中的“Software”工具,或者其他使用官方仓库的工具。选择横栏中选择“Add-ons”类别。接着在该类别中选择“Fonts”。你会看到类似于下面截图中的可用字体:当你选择一种字体时,会出现一些细节。根据几种情况,你可能能够预览字体的一些示例文本。点击“Install”按钮将其添加到你的系统。根据系统速度和网络带宽,完成此过程可能需要一些

实验环境:OS:LinuxCentos7.4x86_641.查看当前服务器时区&列出时区并设置时区(如已是正确时区,请略过):#timedatectl#timedatectllist-timezones#timedatectlset-timezoneAsia/Shanghai2.时间时区概念理解:GMT、UTC、CST、DSTUTC:整个地球分为二十四时区,每个时区都有自己的本地时间,在国际无线电通信场合,为了统一起见,使用一个统一的时间,称为通用协调时(UTC:UniversalTim

如何使用一根网线让两台ubuntu主机联网1、准备主机A:ubuntu16.04主机B:ubuntu16.042、主机A有两个网卡,一个接外网,一个与主机B相接。使用命令iwconfig可以查看主机所有网卡。如上图笔者的A主机(笔记本)上的网卡有:wlp2s0:这个是无线网卡。enp1s0:有线网卡,与B主机相连的网卡。其它与我们无关,无需关心。3、配置A的静态IP编辑文件#vim/etc/network/interfaces为接口enp1s0配置静态IP地址,如下图(其中#==========

不同的CPU架构意味着在树莓派上运行DOS并非唾手可得,但其实也没多麻烦。FreeDOS对大家来说也许并不陌生。它是一个完整、免费并且对DOS兼容良好的操作系统,它可以运行一些比较老旧的DOS游戏或者商用软件,也可以开发嵌入式的应用。只要在MS-DOS上能够运行的程序,在FreeDOS上都可以运行。作为FreeDOS的发起者和项目协调人员,很多用户会把我作为内行人士进行发问。而我最常被问到的问题是:“FreeDOS可以在树莓派上运行吗?”这个问题并不令人意外。毕竟Linux在树莓派上能够很好地运
