Can';在另一台服务器上移动PHP应用程序时,不能访问MySQL视图

Can';在另一台服务器上移动PHP应用程序时,不能访问MySQL视图,mysql,views,Mysql,Views,我当前的项目是在一个已经构建的web应用程序(PHP/MySQL)中进行一些更改。以前的开发人员使用视图来显示数据。我在电脑上安装了这个应用程序是为了熟悉它,但我似乎无法让这些视图正常工作(我在应用程序中没有得到任何输出) 当您使用一个数据库用户创建一个视图,而该用户不再存在时,我在web上搜索了该用户 有人以前卷入过这个问题吗?如何解决这个问题?如果要从SQL转储文件导入视图,它们的定义可能如下 CREATE DEFINER = 'userWhoDoesNotExist@thisServer'

我当前的项目是在一个已经构建的web应用程序(PHP/MySQL)中进行一些更改。以前的开发人员使用视图来显示数据。我在电脑上安装了这个应用程序是为了熟悉它,但我似乎无法让这些视图正常工作(我在应用程序中没有得到任何输出)

当您使用一个数据库用户创建一个视图,而该用户不再存在时,我在web上搜索了该用户


有人以前卷入过这个问题吗?如何解决这个问题?

如果要从SQL转储文件导入视图,它们的定义可能如下

CREATE DEFINER = 'userWhoDoesNotExist@thisServer' VIEW viewName AS ....

尝试删除
DEFINER=
部分,视图将使用currenct用户帐户创建。

由于您在自己的计算机上运行服务器,我假设您具有root访问权限。试着使用类似于

ALTER VIEW brokenView DEFINER='newuser'

这通过了验证检查。只要您在执行此操作时是root用户,就应该能够恢复视图。

到底出了什么问题?什么不起作用?这对于特定的回答来说太模糊了,我无法在PHP页面中显示该视图。“无法显示该视图”是一个模糊的语句。当你尝试时会发生什么?它说了什么?我没有得到任何错误,我只是没有从数据库中得到任何输出。“谢谢你的问题报告。看起来这是5.0.16以来的预期行为。根用户应该能够使用ALTER view()更改视图(包括定义者),或者只需删除并创建它。”