-2

有人搞砸了服务器后,Magento 无法连接 MySql DB。
第一次尝试,我使用mysql -u <username> -h localhost -p并未能通过身份验证。
经过一番努力,这个人帮助了我(解决方案在评论中),所以我终于成功地使用 Magento 的凭据连接到数据库。但是后来我无法远程连接,这个没有帮助,因为--skip-networking禁用了远程连接,但我终于想通了(现在我不记得我做了什么,要么在my.cnf或中改变了一些东西/etc/hosts)。 所以现在我可以在本地和远程

连接 Magento 用户名/密码(在 中配置)。 尽管如此,Magento 仍会打印出无法连接 MySql的错误。configuration.php


我检查了local.xmlconfig.xml(在 下<Magento root>/app/etc),两者似乎都配置正确。

我开始考虑从头开始安装整个东西,问题是没有任何好的备份,我不确定这样做/是否会丢失数据,但如果我必须这样做,我会备份文件+数据库并继续努力......有什么
想法吗?


更新

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

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

4

2 回答 2

3

如果您正在考虑重新安装整个东西,作为前言,我是否可以建议您在与混乱服务器不同的服务器上执行此操作 - 只是为了将数据保留在旧服务器上,以防万一出现问题。您可能还想在同一台服务器上执行此操作,但使用不同的虚拟主机、主文件夹和 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(wget,从 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 配置。

于 2012-09-08T21:58:11.873 回答
1

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

于 2012-09-08T16:21:49.230 回答