当前位置:Gxlcms > 数据库问题 > Linux下定时备份MySQL数据库的Shell脚本

Linux下定时备份MySQL数据库的Shell脚本

时间:2021-07-01 10:21:17 帮助过:2人阅读

  1. 将以上代码保存到: /usr/sbin/DataBackup (文件名随意,只要不跟系统原有的命令同名即可;代码可以放到任何地方,放在sbin目录下只是为了方便执行,sbin目录下的文件/目录可在终端直接调用,类似于windows下PATH变量指定的目录)
  2. 为脚本添加可执行权限: sudo chmod +x /usr/sbin/DataBackup
  3. 执行脚本: sudo DataBackup
  4. 如果需要定时执行备份命令的,只需将下面这段代码放到crontab 文件(sudo vim /etc/crontab)中去就可以了:

01 3 * * * root /usr/sbin/DataBackup #它代表着将于每天3点执行DataBackup脚本
注意:

  1. linux 下的shell脚本定义变量的格式为: key=value ,注意他们两者之间的” = “前后不能出现空格,否则系统无法确认该变量。
  2. 用红色标注的那行,第一个类似单引号的字符”`”其实不是单引号,它的输入键在键盘ESC键下方。
  3. 这个脚本只适合用于一些小站点的备份,因为它是对数据库进行全部备份而不是增量备份,不适合大容量的数据库备份。

Update:

2010-08-24 :由于服务器上的MySQL配置文件里 的socket项值为 “/tmp/mysql.sock”, 而mysqldump在链接mysql server的时候会去查找位于/var/lib/mysql/目录下的mysql.sock文件。如果没有则会报错:
mysqldump: Got error: 2002: Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’
解决方法是:

一是,修改mysql配置文件里的socket项的值为 ’/var/lib/mysql/mysql.sock’,不过这种方法需要重启mysql服务,很不厚道。

二是,为/tmp/mysql.sock创建一个软链接到/var/lib/mysql/mysql.sock:
ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock

Linux下定时备份MySQL数据库的Shell脚本

标签:

人气教程排行