在从另一台主机复制所有视图和表后,我也遇到了同样的问题。 在我使用查询from this answer更改数据库中的所有定义符后,它就工作了。 为方便起见,在此复制:
SELECT CONCAT("ALTER DEFINER=`youruser`@`host` VIEW ",
table_name,
" AS ",
view_definition, ";")
FROM information_schema.views
WHERE table_schema='your-database-name';
6条答案
按热度按时间csbfibhn1#
最好使用第一个mysqldump和
--single-transaction
,比如:如果上面不行,试试下面一个。
您必须替换该过程/方法的定义器,然后才能生成无错误的转储。
你可以这样做:
第三方编辑
对于mysql 8.0,表proc不再存在。试试看
kyvafyod2#
在从另一台主机复制所有视图和表后,我也遇到了同样的问题。
在我使用查询from this answer更改数据库中的所有定义符后,它就工作了。
为方便起见,在此复制:
z4bn682m3#
mysqldump -u user -ppassword --lock-tables=false --default-auth=mysql_native_password dbname〉dump.sql
xam8gpfp4#
我有一个类似的问题,问题是,想迁移数据库从一个示例到另一个,但在转储也是程序,引用其他数据库,所以我标记了错误,并通过修改程序或未能删除一些纠正.
izkcnapc5#
最新的答案提到使用--single-transaction确保当您恢复该备份时,您将再次面临该错误,因此最好的解决方案是更改定义者,如果用户缺少当前正在使用的任何管理员用户的添加定义者。
gstyhher6#
试试这个: