备份是容灾的基础,是指为防止系统出现操作失误或系统故障导致数据丢失,而将全部或部分数据集合从应用主机的硬盘或阵列复制到其它的存储介质的过程。而对于一些网站,系统来说,数据库就是一切,所以做好数据库的备份是至关重要的!
<强>备份是什么? 强>
本实例将创建目录放置于/mnt目录下,可根据具体情况放置于其他目录:
cd/mnt mkdir dbback 松材线虫?mnt/dbback
脚本名称可根据自己规范进行自定义:
vim bcmysql.sh
进入编辑器,输入以下内容:
# !/bin/bash ,mysqldump -uusername -ppassword演示比;/mnt/dbback demo_ $ Y % m % d_(日期+ % % H % % S) . sql
如果需要本分文件进行压缩,可输入下面命令:
# !/bin/bash ,mysqldump -uusername -ppassword演示| gzip祝辞/mnt/dbback demo_ $ Y % m % d_(日期+ % % H % % S) .sql.gz
在具体操作中,需要将用户名、密码和演示分别替换成对应的数据库用户名:密码和数据库名。
chmod u + x bcmysql.sh
添加完执行权限之后,执行此脚本,可能会出现如下异常:
, mysqldump:[警告]使用一个密码> vim/etc/my.cnf
在此文件内添加,mysqldump的配置如下:
(, mysqldump) 用户=your_backup_user_name 密码=your_backup_password替换掉对应的用户名和密码,并修改bcmysql.sh脚本中的命令,取消用户名和密码参数,无需重启mysql,直接执行脚本即可看到备份结果。
demo_20181114_193425.sql
当使用vim查看导出的sql文件内容时,会发现中文有乱码。此问题有两种情况引起,第一种就是数据库本身字符集为latain1,则此时需要指定字符集,在执行的参数中添加如下参数:
——default-character-set=gbk当然如果是utf8则将gbk修改为utf8。查看数据库字符集的命令如下:
显示变量如“%字符%”; ——查询结果 character_set_client utf8 character_set_connection utf8 character_set_database utf8mb4 character_set_filesystem二进制 character_set_results utf8 character_set_server utf8 character_set_system utf8 character_sets_dir/usr/local/mysql/share/charsets/如果将字符集正确修改,依然有乱码,则可尝试添加如下参数:
——hex-blob仔细分析一下表结构,可能表结构中有团类型,这个参数的含义是用16进制的方式导出二进制,VARBINARY blob类型的数据。修改后的命令如下:
,mysqldump——default-character-set=utf8 hex-blob演示比;/mnt/dbback demo_ $ Y % m % d_(日期+ % % H % % S) . sql
<>强检测或安装crontab
强>执行crontab命令如果报命令没有找到,就表明没有安装。
# crontab bash: crontab命令没有找到如果未安装,可以通过百胜命令进行安装:
# yum - y安装vixie-cron虽然crontab不支持- h或- help命令,但可以通过此命令检查是否安装成功:
root@iZ2zeck5vZ ~ # crontab - help 定时任务:无效选项——h 定时任务:使用错误:无法识别的选项 用法: crontab文件[选项] crontab(选项) crontab - n(主机名) 选项: - u & lt; user>定义用户 - e编辑用户crontab - l列出用户crontab - r删除用户crontab 我之前及时删除 - n & lt; host>设置主机集群用户crontab中运行 - c在集群主机用户crontab中运行 - s selinux上下文 - x & lt; mask>启用调试 默认操作取代,每1003.2Linux下Mysql定时任务备份数据的实现方法