Magento无法连接MySQL

时间:2012-09-07 23:49:24

标签: mysql magento magento-1.6

有人搞砸了服务器后,Magento无法连接MySql DB 首先尝试,我使用mysql -u <username> -h localhost -p并且无法进行身份验证 经过大量的努力this guy帮助了我(解决方案在评论中),所以我终于使用Magento的凭据成功连接到数据库。但是我无法远程连接,this one没有帮助,因为--skip-networking禁用了远程连接,但我终于弄明白了(现在我不记得我做了什么,要么改变了一些东西)在my.cnf/etc/hosts)。

现在我可以在本地和远程连接Magento用户名/密码(在configuration.php中配置)。

尽管如此,Magento还是会打印出can't connect MySql的错误 我检查了local.xmlconfig.xml<Magento root>/app/etc下),两者似乎都配置正确。

我开始考虑从头开始安装整个事情,问题是没有任何好的备份,我不确定是什么/如果我要通过这样做松散数据,但如果我必须,我将备份文件+ DB并继续...
有什么想法?


更新

经过无休止的挖掘,显然在local.xml和config.xml的同一目录中还有其他XML文件。删除这些文件(创建为备份,但保留.xml扩展名),问题解决了。

结论:如果您备份xml文件,请将备份保存为file.xml.backup,这样就不会将其视为具有xml扩展名的文件!

2 个答案:

答案 0 :(得分:3)

如果您正在考虑重新安装整个事情,作为前言,我可以建议在不同的服务器上执行此操作 - 只是为了将数据保存在旧服务器上以防万一坏。您可能还希望在同一台服务器上执行此操作,但使用不同的vhost,主文件夹和mysql数据库。

以下是我在进行Magento项目迁移时使用的程序,导入和其他与Magento相关的东西从一台服务器移动到另一台服务器。

这要求您可以从shell访问mysql + mysqldump。

这是我在使用LAMP的基于Debian的发行版中定期使用的程序。


在源服务器上

<强> 1。清洁BD

如果您考虑从新目标服务器下载数据库,则必须执行此操作。 另外,请确保您确实知道要截断哪些表。我无法确切地知道这取决于你的Magento版本。

粗略地,截断索引表+ core_url_rewrite,日志表,cron_schedule,平面目录表,数据流批处理表和配置文件历史记录,报告聚合表。

<强> 2。备份数据库

mysqldump -h [host] -u [user] -p'[password]' [dbname] > magento.sql

第3。清理Magento文件系统

来自你的Magento根文件夹:

rm -rf var/session/* && rm -rf var/cache/* && rm -rf var/log/*

<强> 4。存档您的Magento文件系统

从您的Magento根文件夹:

tar -zcvf magento.tar.gz .

在目标服务器上

以您喜欢的方式检索您的magento.sql和magento.tar.gz(从SSH GUI客户端复制/粘贴...)并将它们放入新的Magento根目录。

<强> 5。导入数据库

mysql -h [your_host] -u [user] -p'[password]' [dbname]

这将打开新数据库上的mysql shell

mysql> SET FOREIGN_KEY_CHECKS = 0;
mysql> source /full/path/to/magento.sql
...
mysql> SET FOREIGN_KEY_CHECKS = 1;

<强> 6。提取你的magento.tar.gz

从新的Magento根目录

tar -zxvf magento.tar.gz

您现在应该可以看到您的网站了。可能需要对app / etc / local.xml进行一些权限修改和微调,以使其适合您的目标服务器MySql配置。

答案 1 :(得分:1)

尝试从后端刷新缓存或删除/ var / cache / *