mysql数据库定时备份--以及Using a password on the command line interface can be insecure的解决办法

一、备份脚本

今天做MySQL数据库备份,在/home/dbback目录下的脚本文件bkDatabaseName.sh(DatabaseName为自己数据库的名字)中,所写的语句如下:

#!/bin/bash

mysqldump -uusername -ppassword DatabaseName | gzip > /home/backup/DatabaseName_$(date+%Y%m%d_%H%M%S).sql.gz

注意:

把 username 替换为实际的用户名;

把 password 替换为实际的密码;

把 DatabaseName 替换为实际的数据库名;

然后:执行下面的语句:

[root@localhost dbback]# chmod u+x bkDatabaseName.sh
[root@localhost dbback]# ./bkDatabaseName.sh

 出现如下错误:

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

查询资料后发现:这是MySQL5.6以上版本提供的安全机制,mysql的用户名和密码不能写在脚本文件中,需要写在/etc/my.cnf中,然后:

[root@locahost ~]# vim /etc/my.cnf

 在/etc/my.cnf中加入如下语句:

[client]
host=localhost
user=数据库用户
password='数据库密码'

 同时把bkDatabaseName.sh这个脚本文件中的语句改为:

#!/bin/bash

mysqldump  DatabaseName | gzip > /home/backup/DatabaseName_$(date+%Y%m%d_%H%M%S).sql.gz

注意:

把 username 替换为实际的用户名;

把 password 替换为实际的密码;

把 DatabaseName 替换为实际的数据库名;

最后执行:

[root@localhost dbback]# ./bkDatabaseName.sh

 警告没有了,问题解决了!

二、定时执行数据库备份脚本 

1、首先查看系统中没有安装crontab,输入如下命令:

[root@localhost dbback]# which crontab 
/usr/bin/crontab

 我们看到了crontab的安装路径,这说明系统中已经安装了crontab,如果没有此路径,可以使用下面的命令安装crontab:

[root@localhost dbback]# yum install vixie-cron
[root@localhost dbback]# yum install crontabs

其中,vixie-cron软件包是cron的主程序;crontabs软件包是用来安装、卸装、或列举用来驱动 cron 守护进程的表格的程序。 

2、crontab的使用 

下面两条简单的命令帮你查看并启动crond服务:

查看crontab服务状态:service crond status

手动启动crontab服务:service crond start

怎么查看crond服务是否开机启动命令:chkconfig --list | grep crond

如果不知道服务名或想查看所有开机服务,那么直接输入chkconfig即可。

基本用法:

1. crontab -l 
列出当前的crontab任务
2. crontab -d 
删除当前的crontab任务
3. crontab -e (solaris5.8上面是 crontab -r) 
编辑一个crontab任务

[root@localhost dbback]# crontab -e

执行上面的命令后,我们把定时执行命令:*/1 * * * * /home/dbback/bkMindoc_db.sh(脚本文件的绝对路径),写入到弹出来的文件中,保存,等待执行!

crontab的语法详见:http://www.mamicode.com/info-detail-2143845.html

猜你喜欢

转载自blog.csdn.net/mameng1988/article/details/82787157
今日推荐