自用的备份还原,做个记录防止再次踩坑
mysql.sh文件
#!/bin/bash
cd ${1}
<<'COMMENT'
${1} 文件所在目录
$2 判断是执行备份还是还原操作
${3} 数据库地址,127.0.0.1
${4} 数据库名
${5} 备份文件完整路径
COMMENT
if [ x"$2" = x"backup" ];then
mysqldump --quick --host=${3} --default-character-set=utf8mb4 --lock-all-tables --port=3306 --databases ${4} > ${5}
fi
if [ x"$2" = x"restore" ];then
mysql --host=${3} --default-character-set=utf8mb4 --port=3306 ${4} < ${5}
fi
无法执行的情况:
- 缺少执行权限,赋予执行权限即可
- 文件在windows下编辑后会变成doc格式,使用vim 文件名进入编辑模式,通过:set ff查看
接着执行:set ff=unix,强制保存即可 - 没有传入mysql root 的密码,编辑etc/my.cnf,在[mysqldump]和[mysql]下方加入root和密码即可
- host需要设置为127.0.0.1,远程IP无法执行备份
[mysqldump]
user=root
password="root的密码"
quick
max_allowed_packet = 500M
[mysql]
no-auto-rehash
user=root
password="root的密码"