MySQLで別サーバーのデータをmysqldumpでダンプして、ローカルでリストアしたら下記のようならエラーが発生した。
The user specified as a definer ('root'@'%') does not exist
Viewがうまくリストアできていないか、Viewへのアクセス権限が前のサーバーと違うのか、原因は分からないが、ViewにWebシステムからアクセスできずにいた。
また、これが原因で、各種SQLアクセスアプリケーション(HeidiやA5:SQL Mk-2等)でみれない状態になっていた。
SQLを直接実行時するとデータは取れていたので、WebシステムからはViewにアクセスする部分以外は動いていた。
それで、結果2つの解決方法があった。
どちらでも良いが、後者が楽。
・Viewを作り直す。
ViewのCREATE文をもう一度流して作成し直すと治った。
・権限を再当てする。
なぜ、そもそもルートに権限がないのかは分からないが下記のSQLで直った。
grant all on *.* to 'root'@'%' identified by 'password' with grant option;