我将wordpress博客移至Amazon EC2后收到错误:“建立数据库连接时出错”。我检查了wp-config.php文件,设置正常(localhost,密码和用户名)。
我在这里阅读了许多问题和答案,但没有任何帮助。
我有shell访问权限,所以我可以检查你需要我做的所有事情。也许我应该查看phpmyadmin的配置文件,看看有什么数据库连接设置,因为phpmyadmin有效,但我不知道它在哪里。
由于
答案 0 :(得分:13)
对我来说,只需重新启动mysqld服务即可。虽然有一个障碍,但只要我执行sudo service mysqld restart
MySql服务停止但没有启动。 sudo services mysqld start
给出了 MySQL Deamon无法启动错误。我花了很多时间尝试启动服务,但我猜真正的罪魁祸首是httpd服务。我停止了httpd服务sudo service httpd stop
。现在执行sudo service mysqld restart
并且bingo wordpress网站重新联机(记得启动httpd服务)。这听起来有些蹩脚,但它起作用,从我发现MySQL数据库停止的原因有多种原因,查看日志并找出实际原因是唯一对我有用的东西。
答案 1 :(得分:6)
增加ec2中的ur swap内存以解决问题。 http://digitizor.com/2011/02/06/create-swap-file-ubuntu-linux/
答案 2 :(得分:4)
我的网站出现了同样的错误,我只是重新启动了我的实例,瞧,问题解决了。
我的情况:
我正在使用亚马逊免费套餐,有些机器人要求我的网站,由于连接数量很大,sql数据库无法满足负载。因此我也安装了负载均衡器:)希望它有所帮助
答案 3 :(得分:2)
最近遇到同样的问题,我使用AWS免费套餐帐户。 ec2实例是t2.micro,它具有无交换预配置。当我安装wordpress东西时,内存使用率总是更高,即使我什么都不做。有一天,我运行sudo yum update
命令,bash显示-bash: fork: Cannot allocate memory
错误。我的网站也总是error establishing a database connection
。
我认为根本原因是内存使用率很高。您可以按照以下说明添加交换内存:How do you add swap to an EC2 instance?
答案 4 :(得分:1)
您没有说明您是将博客从myolddomain.com移至mynewdomain.com,以及您使用的是普通WordPress还是多站点WordPress。但是这里有一些可能有用的提示:
首先,您需要确保正确配置了wp-config.php(数据库服务器,用户名,密码......)
其次,WordPress使用数据库存储有关当前主机的一些信息,查看表wp_site,wp_options,wp_sitemeta并用mynewdomain.com替换包含myolddomain.com的所有行。
确保您的EC2安全组配置正确。
This article也可能会有所帮助。
答案 5 :(得分:1)
我有同样的错误。每次我的EC2服务器由于内存不足而重新启动。 Mysql没有重新启动导致我的网站崩溃,显示“建立数据库连接时出错”首先,我从WHM重启我的服务器,立即修复了错误。下次服务器重新启动时会返回错误。我也尝试在启动命令上ssh自动重启mysql数据库,但那不是问题。虽然我的安全组设置为接受所有流量,但我必须更改我的安全组以包含mysql,并重新启动我的实例以修复错误。我不确定这是否适用于EC2的每个人。这对我有用
答案 6 :(得分:1)
我解决了这个问题,为我的实例添加了一个交换:
sudo /bin/dd if=/dev/zero of=/var/swap.1 bs=1M count=1024
sudo /sbin/mkswap /var/swap.1
sudo chmod 600 /var/swap.1
sudo /sbin/swapon /var/swap.1
如果您需要超过1024,请将其更改为更高的值。
要在重新启动后默认启用它,请将此行添加到/ etc / fstab:
swap /var/swap.1 swap defaults 0 0
要检查您的实例是否正在使用swap运行此命令:
cat /proc/meminfo
结果:
ubuntu@ip-172-31-24-245:/$ cat /proc/meminfo
MemTotal: 604340 kB
MemFree: 8524 kB
Buffers: 3380 kB
Cached: 398316 kB
SwapCached: 0 kB
Active: 165476 kB
Inactive: 384556 kB
Active(anon): 141344 kB
Inactive(anon): 7248 kB
Active(file): 24132 kB
Inactive(file): 377308 kB
Unevictable: 0 kB
Mlocked: 0 kB
SwapTotal:1048572 kB
SwapFree:1048572 kB
Dirty: 0 kB
Writeback: 0 kB
AnonPages: 148368 kB
Mapped: 14304 kB
Shmem: 256 kB
Slab: 26392 kB
SReclaimable: 18648 kB
SUnreclaim: 7744 kB
KernelStack: 736 kB
PageTables: 5060 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
WritebackTmp: 0 kB
CommitLimit: 1350740 kB
Committed_AS: 623908 kB
VmallocTotal: 34359738367 kB
VmallocUsed: 7420 kB
VmallocChunk: 34359728748 kB
HardwareCorrupted: 0 kB
AnonHugePages: 0 kB
HugePages_Total: 0
HugePages_Free: 0
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 2048 kB
DirectMap4k: 637952 kB
DirectMap2M: 0 kB
答案 7 :(得分:1)
确保您已在 EC2 上安装了 mqsql 客户端以建立与 RDS MySQL(或任何 RDS 数据库)的连接。并安装数据库依赖项,您需要从 Apache 访问 RDS。 按照链接:https://aws.amazon.com/getting-started/hands-on/deploy-wordpress-with-amazon-rds/5/
答案 8 :(得分:0)
我不确定您使用哪种发行版,所以我通常会解决这些类型的问题 1.安装一个名为nmap的程序(它扫描端口) 2.运行'nmap localhost'(将localhost替换为运行数据库的服务器,如果它不是本地的) 3.检查您的数据库(mysql)是否正在运行
如果没有,那就做一些'services mysqld restart'的效果(这将重启mysql守护进程)。如果这样修复它,那么请查看该服务是否自动启动。如果您使用该命令出错,则可能没有安装mysql。
答案 9 :(得分:0)
数据库连接错误可能是由于root密码(如果您从浏览器连接)。通过执行$ mysql_secure_installation来保护您的根目录,以保护您的数据库。在第一步中按,然后您可以为root指定新密码。然后一切都应该正常。
答案 10 :(得分:0)
如果服务器在重新启动后继续崩溃可能你应该增加内存,将服务器从t2.micro升级到t2.medium为我做的伎俩。
答案 11 :(得分:0)
您可以考虑关闭您的端口。
在AWS中,您可以在安全组中执行此操作。 例如,如果您打开了SSH,HTTP和HTTPS端口(22,80等),请尝试将它们关闭到只有您的IP地址。 (默认情况下,它们是0.0.0.0,对所有人开放)。您应该特别为SSH端口执行此操作。
机器人总是试图获得对开放端口的访问权限......如果不是更多的话,每天会多次击中你,以测试你是否有开放的漏洞。根据实例的大小,您可能无法处理此流量。这可能是服务器不断崩溃的原因。
答案 12 :(得分:0)
答案 13 :(得分:0)
下面为我修复了此问题:
amazon-linux-extras install -y lamp-mariadb10.2-php7.2 php7.2 &&
service httpd restart