【问题标题】:Magento Module install SQL not runningMagento 模块安装 SQL 未运行
【发布时间】:2011-06-30 15:28:09
【问题描述】:

我编写了一个模块,它拒绝在我的 mysql4-install-1.0.0.php 文件中创建表......但只在实时服务器上。

有趣的是,在我的本地机器(它是实时服务器的镜像(即相同的文件结构等))上,安装正确运行并创建了表。

所以基于文件相同的事实,我可以假设这是服务器配置和/或权限问题吗?我到处查看,在任何日志文件(PHP、MySQL、Apache、Magento)中都没有发现任何问题。

我可以在测试脚本中创建表格(使用 core_read/write)。

有人看过这个吗?

谢谢

** 编辑 ** 两种环境之间的一个主要区别是,在实时服务器上,MySQL 是远程的(不是本地主机)。开发服务器是本地主机。这会导致问题吗?

【问题讨论】:

  • 能否添加其他模块,例如开发人员工具栏或其他已知不会搞砸系统的东西?如果是这样,那么问题在于您的模块而不是 MySQL 等的设置。
  • Magento 的更高版本(我认为是 1.6+)寻找 install-1.0.0.php 文件,而不是 mysql4-install-1.0.0.php 文件。

标签: mysql magento installation


【解决方案1】:
  1. 安装脚本所属的模块是否已安装在实时服务器上? (XML 文件在 app/etc/modules/,Module List Module 用于调试。)

  2. 您的模块的core_resource 表中是否已有记录?如果是这样,请将其删除以设置您的脚本重新运行。

  3. 如果您的文件命名正确? app/code/core/Mage/Core/Model/Resource/Setup.php 中的 _modifyResourceDb 方法是包含/运行此文件的位置。阅读more here

【讨论】:

  • 谢谢艾伦。 1) 是的,我确信所有必需的模块文件都正确安装在实时服务器上(因为它是从开发服务器复制的)。 2)我正在删除数据库中的列表进行测试。 3)我会看看这个函数并调试。谢谢
【解决方案2】:

可能是权限问题 - 面向公众的代码使用的 MySQL 帐户应该拥有尽可能少的权限,但仍然可以让它完成工作,这通常不允许创建/更改/删除表。

使用您连接 mysql 时使用的任何用户名,然后执行:

SELECT User, Host
FROM mysql.user
WHERE User='your username here';

这将向您显示该特定用户名可用的 user@host 组合,然后您可以获得实际权限

show grants for username@host;

对 live 和 devlopment 服务器上的两个帐户执行此操作,这将显示 live 系统缺少哪些权限。

【讨论】:

  • 感谢您的回复。实时系统为我的用户提供了 GRANT ALL,所以我猜 MySQL 权限绰绰有余。不过还是谢谢。
  • 我认为这是不正确的,因为 Magento 使用自己的连接器来访问数据库。
  • magento 连接方式无关紧要,如果是权限问题,那么这就是您比较两个系统之间权限集的方式。仅仅因为 magento 有自己的连接器并不意味着它可以神奇地绕过 MySQL 授权系统。
【解决方案3】:

在 Admin->System->Advanced 部分中,您的模块是否存在并启用?

您是否真的将您的模块解压到正确的空间,例如应用程序/代码/本地/您的公司/您的模块?

你有 app/etc/modules/yourmodule.xml - 我相信这可能是导致你的问题的被忽略的文件。

【讨论】:

  • 感谢您的回复。是的,一切似乎都正确解包,并且模块正确显示在管理员中。如前所述,文件结构与开发服务器相同,并且可以正确安装。谢谢。
  • 已经注册了吗?打开 phpmyadmin 并搜索您的模块名称。它将在一个配置表中,只有一个键。把它拿出来,然后它应该会神奇地自行安装。
【解决方案4】:

缓存可能是罪魁祸首,如果您手动删除模块的 core_resource 行以使设置 sql 再次运行,您还必须刷新缓存

可能开发服务器和生产服务器之间的区别在于缓存设置,这可以解释为什么您只能在生产中看到它

【讨论】:

    【解决方案5】:

    对我来说,问题出现在使用 Windows 进行开发。 Linux 系统区分大小写。在我的config.xml 中,设置部分被命名为camelCase,而文件夹被命名为all-lowercase。使它们相同使脚本运行。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-24
      • 1970-01-01
      相关资源
      最近更新 更多