在另一台服务器上移动 PHP 应用程序时无法访问 MySQL 视图
Posted
技术标签:
【中文标题】在另一台服务器上移动 PHP 应用程序时无法访问 MySQL 视图【英文标题】:Can't access MySQL views when moving the PHP application on another server 【发布时间】:2011-01-29 13:21:53 【问题描述】:我当前的项目是对已经构建的 Web 应用程序 (php/mysql) 进行一些更改。为了显示数据,之前的开发人员使用了视图。为了熟悉它,我在我的计算机上安装了该应用程序,但我似乎无法使这些视图正常工作(我在应用程序中没有得到任何输出)。
当您使用一个数据库用户创建视图并且该用户不再存在时,我在网上搜索了 there seems to be a problem。
有谁以前研究过这个问题?怎么解决?
【问题讨论】:
究竟出了什么问题?什么不起作用?这对于具体的答案来说太模糊了 我无法在 PHP 页面中显示该视图。 “无法显示该视图”是一个模糊的陈述。当你尝试时会发生什么?它说什么? 我没有收到任何错误,我只是没有从数据库中获得任何输出。 "感谢您的问题报告。看起来这是自 5.0.16 以来的预期行为。root 用户应该能够使用 ALTER VIEW (dev.mysql.com/doc/refman/5.0/en/alter-view.html) 更改视图(包括定义器),或者只是删除并创建它。” 【参考方案1】:如果您从 SQL 转储文件中导入视图,它们可能是这样定义的
CREATE DEFINER = 'userWhoDoesNotExist@thisServer' VIEW viewName AS ....
尝试删除DEFINER =
部分,将使用当前用户帐户创建视图。
【讨论】:
【参考方案2】:由于您在自己的计算机上运行服务器,我假设您具有 root 访问权限。尝试使用类似的东西
ALTER VIEW brokenView DEFINER='newuser'
这通过了验证检查here。只要您在执行此操作时是 root,您应该能够恢复您的视图。
【讨论】:
以上是关于在另一台服务器上移动 PHP 应用程序时无法访问 MySQL 视图的主要内容,如果未能解决你的问题,请参考以下文章
在另一台 PC 上出现错误消息“禁止您无权访问 / 在此服务器上”
Oracle Dll 加载错误:无法在另一台机器上运行 C# 控制台应用程序