佛山网站建设在哪找,网站建设男装定位,建筑工程网名,哈尔滨建设局网站首页一、前言知道备份的重要性吗#xff1f;没经历过的可能永远不知道#xff0c;我们在重装系统、手机升级等时候#xff0c;备份一下必要数据总是有好处的#xff0c;指不定哪个神操作导致磁盘数据丢失#xff0c;前些日子删库跑路被判刑的那位老哥#xff0c;如果公司有备… 一、前言知道备份的重要性吗没经历过的可能永远不知道我们在重装系统、手机升级等时候备份一下必要数据总是有好处的指不定哪个神操作导致磁盘数据丢失前些日子删库跑路被判刑的那位老哥如果公司有备份的话也不至于损失几个亿(听说是让绿了)所以本章来学习一下MySQL的备份与恢复如果要定期备份的话可以写个脚本定时执行省去人来完成这重复的工作。我们可以使用以下任何一种方法来生成MySQL数据库的备份使用mysqldump程序使用二进制日志在本文中会解释如何使用mysqldump生成MySQL数据库的备份。二、使用mysqldump程序生成备份Mysqldump是一个命令行程序用于生成MySQL数据库的备份。他生成的文件可以用于重新创建数据库对象和数据的SQL语句。mysqldump -u [用户名] –p [密码] [选项] [数据库名] [表名] [dumpfilename.sql]参数如下-u [用户名]连接到MySQL服务器的用户名。-p [密码]MySQL用户的密码[option]用于自定义备份的配置选项[数据库名称]要备份的数据库的名称[表名]这是一个可选参数。如果要获取备份特定表则可以在命令中指定名称[dumpfilename.sql]备份文件的路径和名称。1.生成单个数据库的备份要生成单个数据库的备份可以运行以下命令这个命令将test数据库中的表结构和数据都保存到testdb.sql文件中。mysqldump -u root -p test /home/HouXinLin/test/testdb.sql运行此命令时会提示您输入密码输入密码后将在对应路径生成sql文件内容如下。2.生成多个数据库或所有数据库的备份如果要生成多个数据库的备份必须在mysqldump命令中添加--databases选项以下命令将生成具有结构和数据的test和db_score数据库的备份。mysqldump -u root -p --databases test db_score test /home/HouXinLin/test/test_tbscoredb.sql要生成整个数据库的备份则需要加--all-databases选项。mysqldump -u root -p --all-databases /home/HouXinLin/test/test_tbscoredb.sql3.生成数据库结构的备份如果仅要生成数据库结构的备份则必须在mysqldump命令中加入–no-data选项以下命令用于生成test数据库的数据库结构的备份。mysqldump -u root -p --no-data test /home/HouXinLin/test/testdb.sql4.生成特定表的备份如果仅要生成数据库中某个表的备份则必须在mysqldump命令中指明表名称以下命令用于生成test数据库中tb_books表的结构和数据备份。mysqldump -u root -p test tb_books /home/HouXinLin/test/testdb.sql5.仅生成数据库数据备份如果要生成仅数据库数据的备份(没有创建表的语句)则必须在mysqldump命令中加入–no-create-info 选项。以下命令生成test数据库的数据备份。mysqldump -u root -p --no-create-info test /home/HouXinLin/test/testdb.sql生成的sql中可以看到他只有insert语句在插入的时候还进行了锁表。三、恢复数据恢复的话比较简单通过source程序传入sql文件即可以下是完整的备份、删库恢复命令。## 备份mysqldump -u root -p test /home/HouXinLin/test/testdb.sql## 删除test数据库drop database test;## 创建数据库create database test;## 选择数据库use test;## 恢复source /home/HouXinLin/test/testdb.sql四、免密码导出从上面可以发现在使用mysqldump的时候每次都需要输入密码当然这是可以避免的touch ~/.my.cnfvim ~/.my.cnf 然后编辑其内容(编辑完不需要重启)最后在使用mysqldump中一定要取消-p参数。[mysqldump]userrootpasswordxxxxx其实对于这类更改方式在我心中必须要看到某个文件对这个软件有什么影响的官方文章说明才会安心即使知道他确实会对软件有影响在没看到官方对这个解释前心中的这石头总是放不下的所以我在官网中找到了对一些文件的解释。文件名目的/etc/my.cnf全局选项/etc/mysql/my.cnf全局选项SYSCONFDIR/my.cnf全局选项$MYSQL_HOME/my.cnf服务器特定的选项(仅服务器)~/.my.cnf用户特定的选项~/.mylogin.cnf用户特定的登录路径DATADIR/mysqld-auto.cnf系统变量使用 SET PERSIST或 SE PERSIST_ONLY保留(仅服务器)SYSCONFDIR表示在构建MySQL时SYSCONFDIR 使用CMake选项指定的目录。MYSQL_HOME是一个环境变量其中包含服务器特定my.cnf文件所在目录的路径。DATADIR表示MySQL数据目录。用于查找 mysqld-auto.cnf其默认值是编译MySQL时内置的数据目录位置但是可以通过--datadir 指定为在处理之前mysqld-auto.cnf处理的选项文件或命令行选项来更改。五、定时备份Linux自带一个定时任务系统可以通过crontab -e进行添加也可以修改/etc/crontab文件另外这个服务的最低侦是分钟也就是无法做到每隔x秒后去执行任务这个服务会每分钟去读取一次 /etc/crontab 和 /var/spool/cron 里面的数据在编辑/etc/crontab文件后只需静静等待即可下面以/etc/crontab为例子在文件最后加入每隔1秒执行一次脚本这需要对cron表达式有所了解。# /etc/crontab: system-wide crontab# Unlike any other crontab you dont have to run the crontab# command to install the new version when you edit this file# and files in /etc/cron.d. These files also have username fields,# that none of the other crontabs do.SHELL/bin/shPATH/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin# m h dom mon dow user command17 * * * * root cd / run-parts --report /etc/cron.hourly25 6 * * * root test -x /usr/sbin/anacron || ( cd / run-parts --report /etc/cron.daily )47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / run-parts --report /etc/cron.weekly )52 6 1 * * root test -x /usr/sbin/anacron || ( cd / run-parts --report /etc/cron.monthly )#*/1 * * * * root /home/HouXinLin/test/dump.shdump.sh#!/bin/bashmysqldump -u root test /home/HouXinLin/test/testdb.sql静静等待1分钟后在对应的目录就会生成testdb.sql文件。