有人搞砸了服务器后,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.xml
和config.xml
(<Magento root>/app/etc
下),两者似乎都配置正确。
我开始考虑从头开始安装整个事情,问题是没有任何好的备份,我不确定是什么/如果我要通过这样做松散数据,但如果我必须,我将备份文件+ DB并继续...
有什么想法?
更新
经过无休止的挖掘,显然在local.xml和config.xml的同一目录中还有其他XML文件。删除这些文件(创建为备份,但保留.xml扩展名),问题解决了。
结论:如果您备份xml文件,请将备份保存为file.xml.backup
,这样就不会将其视为具有xml扩展名的文件!
答案 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 / *