MySQL backup and restore with views

databaseimportMySQL

I am having trouble getting mysql backups to run properly when their are views in the database. I think this might have something to do with needing a placeholder object for it. In any event I run this command:

mysqldump -u myuser -pmypassword mydatabase | mysql -u myuser -pmypassword -C mydatabase_Beta

The user has full privileges and I get this:

View mydatabase_beta.yadayada references invalid tables or columns or functions or definer/invoker or view lack rights to use them.

How can I back it up so that it restores all of my database properly?

In the example I am restoring it to a different name but I do need to be able to restore a working copy. I think it is probably an additional mysqldump parameter or maybe hot copy would work better. Thoughts?

Best Answer

Try doing it in two steps first:

mysqldump -uroot -ppassword --skip-extended-insert database.sql > database.sql

So it backs up to a file and then pipe that into the second command:

mysql -u myuser -pmypassword -C mydatabase_Beta < database.sql

If the reference error is in the mysqldump step either fix the views or drop it from the database. I can't imaging they're still used if they reference a non-existing table.

Related Topic