Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql Magento模块安装SQL未运行_Mysql_Magento_Installation - Fatal编程技术网

Mysql Magento模块安装SQL未运行

Mysql Magento模块安装SQL未运行,mysql,magento,installation,Mysql,Magento,Installation,我已经编写了一个模块,它直接拒绝在我的mysql4-install-1.0.0.php文件中创建表……但只在实时服务器上 有趣的是,在我的本地机器上(它是实时服务器的镜像(即相同的文件结构等))安装运行正常,并且创建了表 因此,基于文件相同的事实,我是否可以假定这是服务器配置和/或权限问题?我到处都找过了,在任何日志文件(PHP、MySQL、Apache、Magento)中都找不到问题 我可以在测试脚本中创建表ok(使用core_读/写) 有人见过这个吗 谢谢 **编辑**这两种环境之间的一个主

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

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

因此,基于文件相同的事实,我是否可以假定这是服务器配置和/或权限问题?我到处都找过了,在任何日志文件(PHP、MySQL、Apache、Magento)中都找不到问题

我可以在测试脚本中创建表ok(使用core_读/写)

有人见过这个吗

谢谢


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

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

使用您连接到mysql的任何用户名,然后执行以下操作:

SELECT User, Host
FROM mysql.user
WHERE User='your username here';
这将向您展示user@host可用于该特定用户名的组合,然后您可以使用

show grants for username@host;

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

在“管理->系统->高级”部分,您的模块是否存在并已启用

您是否真的将模块解压缩到了正确的位置,例如app/code/local/yourcompany/yourmodule

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

  • 您的安装脚本所属的模块是否已安装在live server上?(app/etc/modules/中的XML文件,用于调试。)

  • 您的模块的
    核心资源
    表中是否已有记录?如果是这样,请删除它以将脚本设置为重新运行

  • 如果文件名正确?
    app/code/core/Mage/core/Model/Resource/Setup.php
    中的
    \u modifyResourceDb
    方法是包含/运行此文件的位置。阅读


  • 缓存可能是罪魁祸首,如果手动删除模块的core_资源行以使安装sql再次运行,则还必须刷新缓存


    开发服务器和生产服务器之间的差异可能在于缓存设置,这就解释了为什么您只在生产中看到这一点。对于我来说,这个问题是在使用Windows进行开发时出现的。Linux系统区分大小写。在我的
    config.xml
    中,设置部分被命名为
    camelCase
    ,而文件夹被命名为
    all lowercase
    。使它们保持一致使脚本运行。

    感谢您的回复。live系统已经为我的用户授予了所有权限,所以我想MySQL权限已经足够了。不过,谢谢。我认为这是错误的,因为Magento使用自己的连接器访问数据库。无论Magento如何连接,如果是权限问题,那么这就是比较两个系统之间权限集的方式。仅仅因为magento有自己的连接器并不意味着它可以神奇地绕过MySQL授权系统。您可以添加其他模块,例如开发者工具栏或其他已知不会破坏系统的模块吗?如果是这样的话,那么问题就出在你的模块上,而不是MySQL等的设置上。Magento的更高版本(我想是1.6+版本)会查找install-1.0.0.php文件,而不是mysql4-install-1.0.0.php文件。谢谢你的回复。是的,所有内容都正确解包,模块正确显示在管理员界面中。如前所述,该文件结构与dev服务器相同,并且正确安装在该服务器上。谢谢,已经注册了吗?打开phpmyadmin并搜索您的模块名称。它将在一个配置表中,只有一个键。把它拿出来,然后它会神奇地自行安装。谢谢艾伦。1) 是的,我确信所有必需的模块文件都正确安装在live server上(因为它是从开发服务器复制的)。2) 我正在删除数据库中要测试的列表。3) 我将看看这个函数并进行调试。谢谢