在另一台服务器上移动 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 上出现错误消息“禁止您无权访问 / 在此服务器上”

php 在一台机器上解析失败,但在另一台机器上解析失败

Oracle Dll 加载错误:无法在另一台机器上运行 C# 控制台应用程序

iOS 钥匙串替代方案,无法在另一台设备上恢复

无法在另一台未安装 VS2017 的机器上运行使用 VS2017 构建的 C++ 应用程序

为啥我的Java Web项目在另一台机子上可以运行,到了另一台机子上就出错了,报的是404和500错误