linux环境下mysql数据库备份及自动备份

611 阅读1分钟

使用mysql的mysqldump命令做数据备份

/usr/local/mysql/bin/mysqldump -u用户名 -p密码 需要备份的数据库 > 数据库备份文件地址

mysqldump文件不一定在此目录下,根据自己环境上的文件路径修改

我们执行上面的命令核能会出现如下警告:

mysqldump: [Warning] Using a password on the command line interface can be insecure.

出现如上警告这是由于数据库的密码直接输出在命令行,这是不安全的,解决如下:

1.修改/ect/my.cnf文件

host = 127.0.0.1
user = 用户名
password = 密码

2.修改mysqldump命令

/usr/local/mysql/bin/mysqldump --defaults-extra-file=/etc/my.cnf 需要备份的数据库 > 数据库备份文件地址

编写备份脚本

创建一个目录专门放数据库自动备份脚本和数据库备份文件

mkdir /data/mysql_data

创建一个backup_mysql.sh脚本,

touch backup_mysql.sh

脚本内容为(vim backup_mysql.sh):

#!/bin/bash
date=`date +%Y%m%d`
filename="mysql${date}"
/usr/local/mysql/bin/mysqldump --defaults-extra-file=/etc/my.cnf blog > /data/mysql_data/${filename}.sql
echo /data/mysql_data/
tar zcPf ${filename}.tar.gz ${filename}.sql
rm -rf /data/mysql_data/${filename}.sql

编写完脚本之后保存退出,然后变更脚本的执行权限:

chmod +x /data/mysql_data/backup_mysql.sh 

脚本编写完后我们可以直接执行脚本,看看是否可以备份数据库:

/data/mysql_data/backup_mysql.sh 

发现数据库数据备份成功:

image.png

使用crond来实现脚本指定时间自动执行

使用如下命令进入cornd编辑页:

crontab -e

然后再编辑与填入如下命令

0 0 * * * /data/mysql_data/backup_mysql.sh

然后执行:

service  crond reload #重新载入配置
service  crond restart #重启crond

这样每天00:00的时候Linux服务器就会自动执行这个脚本实现mysql自动备份

文章参考:segmentfault.com/a/119000002…