使用mysqldump时发生的一些问题
做个笔记,回头免得自己又忘记了.
之前一直使用sh脚本调用mysqldump对mysql上边的数据库进行备份.
如:
more mysql_database_backup.sh
#!/bin/sh # 设置备份文件夹 t_dir="/data/db_backup" # 设置备份文件名称 s_filename="mydatabase_$(date +%Y%m%d%H%M%S)" # 使用backup_user用户对数据库进行备份,需要注意的是backup_user最少需要数据库的select及lock table权限 /usr/local/bin/mysqldump --opt -ubackup_user -pbackupuserpassword mydatabase >$t_dir/$s_filename.bak /usr/bin/tar -czvf $t_dir/$s_filename.tar.gz $t_dir/$s_filename.bak rm $t_dir/$s_filename.bak
今晚对另外一个数据库进行同样备份的时候,提示备份用户没有Lock Table的权限,经过仔细检查,确认是有这个权限.然后又试着给这个用户赋予所有权限.还是不行,提示说某某视图中某某用户不存在.印象中这个数据库没有用到视图啊…后来在网上查了一下,看到了这个文章:
http://hi.baidu.com/jppnroqjgrbfjqd/item/5d219517179ad6797b5f251a
怀疑是之前通过sql文件导入生成的数据库中有一些之前用脚本定义的definer之类的东东.干脆找到那个视图,删除.然后再执行备份命令,就OK了.