如果mysql备份在数据库中是视图时,我无法正常运行。 我认为这可能与需要占位符对象有关。 无论如何我运行这个命令:
mysqldump -u myuser -pmypassword mydatabase | mysql -u myuser -pmypassword -C mydatabase_Beta
用户有完整的权限,我得到这个:
查看mydatabase_beta.yadayada引用无效的表或列或函数或定义者/调用者或查看缺乏使用它们的权利。
我如何备份,以便它恢复所有我的数据库正确?
在这个例子中,我将其恢复到一个不同的名称,但我需要能够恢复工作副本。 我认为这可能是一个额外的mysqldump参数,也许热复制会更好。 思考?
先尝试两个步骤:
mysqldump -uroot -ppassword --skip-extended-insert database.sql > database.sql
所以它备份到一个文件,然后pipe到第二个命令:
mysql -u myuser -pmypassword -C mydatabase_Beta < database.sql
如果引用错误在mysqldump步骤中,请修复视图或将其从数据库中删除。 如果他们引用一个不存在的表格,我无法进行映像处理。
我想答案可能是添加-f :
--force, -f Continue even if an SQL error occurs during a table dump.
此选项的一个用途是使mysqldump继续执行,即使它遇到无效的视图,因为定义引用了已经被删除的表。 没有--force ,mysqldump退出并显示错误信息。 使用--force ,mysqldump打印错误消息,但是它也将包含视图定义的SQL注释写入转储输出并继续执行。
在这里黑暗中射击,但我不认为你在这个声明的后半部分需要-C 。 根据我的mysql的副本-C定义使用的configuration文件path。