やってた事
hoge1 ユーザーの hoge1_db を
hoge2 ユーザーの hoge2_db にコピーしたい。
phpMyAdminでhoge2ユーザーを作り、root権限でhoge1_db を hoge2_dbにコピーしようとしたら以下のエラー
# 1356 - View 'hoge1_db.view_count' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
VIEWの権限がないみたいなエラー。
CREATE VIEWを編集する
ダンプファイルを作成する
mysqldump -u hoge1 -p --databases hoge1_db > hoge.dump
hoge.dump内のCREATE VIEW しているSQLのDEFINERを編集
CREATE ALGORITHM=UNDEFINED DEFINER=`hoge1`@`%` SQL SECURITY DEFINER VIEW `view_count` AS ...
↓
CREATE ALGORITHM=UNDEFINED DEFINER=`hoge2`@`%` SQL SECURITY DEFINER VIEW `view_count` AS ...
リストア実行
mysql -u hoge2 -p hoge2_db < hoge.dump
参考