一、用命令备份数据库
1. 一般备份:mysqldump -u 数据库登录名 -p [数据库登录密码] 数据库 > 备份路径/文件名 .sql
2.备份成压缩包:mysqldump -u 数据库登录名 -p [数据库登录密码] 数据库 | gzip > 备份路径/文件名 .sql.gz
实例:注意 要先创建一个备份位置的文件夹。
mysqldump -uroot -p mynewdatabase20200512 > /usr/local/mysql_backup/mynewdatabase.sql
二、恢复数据库:
mysql -uusername -ppassword databasename < backupfile.sql
实例:
mysql -uroot -p mynewdatabase20200512 < /usr/local/mysql_backup/mynewdatabase.sql
以下参考自:Linux下实现MySQL数据备份和恢复的命令使用全攻略
备份MySQL数据库的命令 :
mysqldump -hhostname -uusername -ppassword databasename > backupfile.sql
备份MySQL数据库为带删除表的格式 备份MySQL数据库为带删除表的格式,能够让该备份覆盖已有数据库而不需要手动删除原有数据库。
mysqldump -–add-drop-table -uusername -ppassword databasename > backupfile.sql
直接将MySQL数据库压缩备份
mysqldump -hhostname -uusername -ppassword databasename | gzip > backupfile.sql.gz
备份MySQL数据库某个(些)表
mysqldump -hhostname -uusername -ppassword databasename specific_table1 specific_table2 > backupfile.sql
同时备份多个MySQL数据库
mysqldump -hhostname -uusername -ppassword –databases databasename1 databasename2 databasename3 > multibackupfile.sql
仅仅备份数据库结构
mysqldump –no-data –databases databasename1 databasename2 databasename3 > structurebackupfile.sql
备份服务器上所有数据库
mysqldump –all-databases > allbackupfile.sql
还原MySQL数据库的命令
mysql -hhostname -uusername -ppassword databasename < backupfile.sql
还原压缩的MySQL数据库
gunzip < backupfile.sql.gz | mysql -uusername -ppassword databasename
将数据库转移到新服务器
mysqldump -uusername -ppassword databasename | mysql –host=*.*.*.* -C databasename
命令中 -hhostname可以不用。
补充:
>mysqldump -h192.168.9.204 -uroot -ppwd databasename --no-create-info --default-character-set=utf8 table1 table2 table3 > backupfile.sql
备份数据库 databasename 下的 table1 table2 table3 数据表,并且不带drop 和 create
二、创建定时任务执行备份:crontab -e
1.使用vi命令,创建脚本文件:文件名.sh,文件内容为linux命令
2.创建定时任务备份数据库
命令:crontab -e 回车 打开一个空的文件,编辑方法同vi,格式为
* * * * * 脚本文件文件路径
不明这个啥意思的,可以用这个命令查看:cat /etc/crontab 定时任务的格式。

示例:
(1)10 * * * * 脚本文件文件路径.sh
每小时过10分钟时执行脚本文件:即在 10:10 11:10 12:10 ......等等时执行文件,实际上是每一小时执行一次。
(2)*/10 * * * * 脚本文件文件路径.sh
每隔10分钟执行一次脚本文件:即 10:10 10:20 10:30 ....等等 每过十分钟执行一次。
crontab -l 查看当前用户下的定时任务,定时任务文件目录 为/var/spool/cron/ 文件名为系统登录用户的名称
crontab -r 删除所有定时任务。
#定时删除指定文件
find 路径 -mtime N -name '文件名.后缀名' -exec rm -rf {} \;
实例:
find /usr/local/mysql_backup -mtime +1 -name '*.sql' -exec rm -rf {} \;
-mtime n 按照文件的更改时间来找文件,n为整数。
n表示文件更改时间距离为n天, -n表示文件更改时间距离在n天以内,+n表示文件更改时间距离在n天以前。
例如:
-mtime 0 表示文件修改时间距离当前为0天的文件,即距离当前时间不到1天(24小时)以内的文件。
-mtime 1 表示文件修改时间距离当前为1天的文件,即距离当前时间1天(24小时-48小时)的文件。
-mtime+1 表示文件修改时间为大于1天的文件,即距离当前时间2天(48小时)之外的文件
-mtime -1 表示文件修改时间为小于1天的文件,即距离当前时间1天(24小时)之内的文件
为什么-mtime+1 表示文件修改时间为大于1天的文件,即距离当前时间48小时之外的文件,而不是24小时之外的呢?
因为n值只能是整数,即比1大的最近的整数是2,所有-mtime+1不是比当前时间大于1天(24小时),而是比当前时间大于2天(48小时)。
数字N的参考文献:Linux命令之find命令中的-mtime参数
附:给文件授权:命令 chmod -R abc 文件名 a b c 分别表示授予owner group other 用户的权限值
Unix系统的权限分三种,分别是拥有者(Owner)、用户组(Group)、其它用户(Other),用ls的-l参数可以查看文件的权限。
图片来源文件授权,很好的文章
-
r = 4: 读
-
w = 2: 写
-
x = 1: 执行
使用 ls 文件 -ll 命令 可以查看文件权限。
journalctl -e??
journalctl | grep bkemp