[MySQL] viewがある場合のリストアで問題

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;

 

Leave a Reply

Your email address will not be published.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>