我正在将我的网站从CPanel托管迁移到Amazon EC2。我正在使用Amazon RDS来托管我的WordPress数据库。
我按照以下步骤操作:
虽然一切都很顺利,但我在浏览器中打开网站时遇到以下错误“Error establishing a database connection
”。我尝试更改RDS上的安全组并允许所有人,并在MySQL上添加了具有数据库所需权限的用户。
问题是与RDS的连接尚未建立。我能够从我的EC2实例连接到RDS,但WordPress无法连接。
我的wp-config.php
看起来像是:
/** The name of the database for WordPress */
define('DB_NAME', 'wordpress');
/** MySQL database username */
define('DB_USER', 'db_username');
/** MySQL database password */
define('DB_PASSWORD', 'db_password');
/** MySQL hostname */
define('DB_HOST', 'wordpress-site.something.rds.amazonaws.com:3306');
/** Database Charset to use in creating database tables. */
define('DB_CHARSET', 'utf8');
/** The Database Collate type. Don't change this if in doubt. */
define('DB_COLLATE', '');
编辑:我将localhost的wp-config.php更改为指向RDS,并且该网站在我的localhost上工作正常。唯一的问题是EC2的连接问题。
答案 0 :(得分:1)
转到您的AWS设置,看看您打开了哪些端口。 IIRC,大多数都关闭了,你可能需要打开DB的端口。
答案 1 :(得分:0)
使用准系统服务器时,您必须自己安装所有内容。请继续检查你的EC2服务器上是否安装了PHP,Apache和mysql,否则它将无效!
当您在安全组上打开端口时,我希望您也没有打开EC2 / RDS的所有传入端口 - 这两个端口都有不同的安全组。
如果站点在您的localhost中运行,则意味着RDS也接受来自任何地方的传入连接。理想情况下,为了使数据库安全--RDS必须只接受来自一个IP的传入连接(EC2实例的弹性IP)
干杯!