我现在已经尝试了几个小时,将我们的Magento安装从dev转移到了live。我在网上找到了多个链接,说要移动Magento安装,你需要编辑/app/etc/local.xml
并使用新的MySQL凭据更新它,然后删除/var/cache/
的内容(有些甚至建议删除整个/var
文件夹。我还删除了/var/session/
的内容。我们的服务器没有缓存(没有memcached,varnish等)。我甚至重新启动了apache,看看是否可以刷新任何可能正在运行的缓存。
所以问题是我们的Magento安装仍然试图以某种方式连接到旧数据库。我们收到了这个错误:
SQLSTATE[28000] [1045] Access denied for user 'oldDBUsername'@'localhost' (using password: YES)
如果有人对如何解决这个问题有任何想法,我还没有提到过,我们将不胜感激。
编辑:
以下是Magento报告的堆栈跟踪:
Trace:
#0 fileroot/lib/Zend/Db/Adapter/Pdo/Mysql.php(96): Zend_Db_Adapter_Pdo_Abstract->_connect()
#1 fileroot/lib/Varien/Db/Adapter/Pdo/Mysql.php(300): Zend_Db_Adapter_Pdo_Mysql->_connect()
#2 fileroot/lib/Zend/Db/Adapter/Abstract.php(459): Varien_Db_Adapter_Pdo_Mysql->_connect()
#3 fileroot/lib/Zend/Db/Adapter/Pdo/Abstract.php(238): Zend_Db_Adapter_Abstract->query('SET NAMES utf8', Array)
#4 fileroot/lib/Varien/Db/Adapter/Pdo/Mysql.php(389): Zend_Db_Adapter_Pdo_Abstract->query('SET NAMES utf8', Array)
#5 fileroot/app/code/core/Mage/Core/Model/Resource.php(169): Varien_Db_Adapter_Pdo_Mysql->query('SET NAMES utf8')
#6 fileroot/app/code/core/Mage/Core/Model/Resource.php(110): Mage_Core_Model_Resource->_newConnection('pdo_mysql', Object(Mage_Core_Model_Config_Element))
#7 fileroot/app/code/core/Mage/Core/Model/Resource/Db/Abstract.php(320): Mage_Core_Model_Resource->getConnection('core_read')
#8 fileroot/app/code/core/Mage/Core/Model/Resource/Db/Abstract.php(335): Mage_Core_Model_Resource_Db_Abstract->_getConnection('read')
#9 fileroot/app/code/core/Mage/Core/Model/Resource/Cache.php(53): Mage_Core_Model_Resource_Db_Abstract->_getReadAdapter()
#10 fileroot/app/code/core/Mage/Core/Model/Cache.php(449): Mage_Core_Model_Resource_Cache->getAllOptions()
#11 fileroot/app/code/core/Mage/Core/Model/Cache.php(491): Mage_Core_Model_Cache->_initOptions()
#12 fileroot/app/code/core/Mage/Core/Model/App.php(1175): Mage_Core_Model_Cache->canUse('config')
#13 fileroot/app/code/core/Mage/Core/Model/Config.php(414): Mage_Core_Model_App->useCache('config')
#14 fileroot/app/code/core/Mage/Core/Model/Config.php(294): Mage_Core_Model_Config->_canUseCacheForInit()
#15 fileroot/app/code/core/Mage/Core/Model/App.php(408): Mage_Core_Model_Config->loadModulesCache()
#16 fileroot/app/code/core/Mage/Core/Model/App.php(338): Mage_Core_Model_App->_initModules()
#17 fileroot/app/Mage.php(640): Mage_Core_Model_App->run(Array)
#18 fileroot/index.php(80): Mage::run('', 'store')
#19 {main}
答案 0 :(得分:12)
我明白了。
当我将开发安装带到现场时,我已将local.xml
复制到local_bk.xml
我发现Magento会尝试自动加载/app/etc/
文件夹中的所有xml文件,因此它正在尝试加载我备份的文件,我立即将备份重命名为没有以.xml结尾的内容。
答案 1 :(得分:2)
安装magento时,必须选择缓存和会话数据是存储在文件系统还是db上。
它可能是local.xml中的以下行,现在还不记得了。
<session_save><![CDATA[files]]></session_save>
如果您正在使用db,那么它会将数据存储在core_cache表中,也可能存储在数据库中。
如果数据库缓存表没有截断它们,请查看它们是否为空。
您还需要在core_config_data
中更新安全和不安全的基本网址请参阅以下内容以获取SQL以进行更新
答案 2 :(得分:0)
正确的路径是
app/etc/local.xml
而不是:
etc/app/local.xml
这会解决您的问题吗?
答案 3 :(得分:0)
对于今后遇到此问题的其他人,这里有一些关于Magento维基的文档。 http://www.magentocommerce.com/wiki/groups/227/moving_magento_to_another_server
答案 4 :(得分:0)
你的回答救了我!我花了很多时间在这个问题上,只是偶然发现了这个答案。我通常会复制并粘贴以搜索错误,因此我想提供更多实际错误,以便其他人可以从中受益。
我将local.xml文件命名为local.bak,这就是我的错误所在。与工作Magento实例的所有文件进行比较只产生了额外的文件。
错误让我相信也许mySQL是问题,但它与它无关。也许有人可能会发布一个日志或方法来显示实际使用的文件。我没有看到写入任何日志的任何通知。
以下是更多错误,不包括任何特定于网站的内容:
"SQLSTATE[HY000] [1045] Access denied for user '*myuser*'@'localhost' (using password: YES) /lib/Zend/Db/Adapter/Pdo/Mysql.php(111): Zend_Db_Adapter_Pdo_Abstract->_connect()
答案 5 :(得分:0)
同时更改Core ML framework
中的文件名,删除中间中的.xml对我有用:
app/etc/
至local.xml.template
和local.template
到local.xml.additional
谢谢@Peter。
答案 6 :(得分:-1)
在您的magento文件夹中,您需要像Gershon所提到的那样编辑app / etc / local.xml。
您还将以root或sudo的身份删除magento创建的magento文件夹的var / cache中的所有文件和目录。