拒绝访问用户' linuxuser' @' localhost' (使用密码:否)

时间:2015-03-09 14:33:45

标签: php mysql linux wordpress

我的客户要求我将他的Wordpress网站从共享服务器移动到AWS。

AWS EC2实例是Ubuntu 14.04 LTS,PHP 5.5.9,MySQL 5.5.38。 旧服务器有PHP 5.4.30和MySQL 5.5.42。 AWS实例上没有安装PHPMyAdmin和CPanel。所以我必须使用命令来做所有事情。

在AWS实例中,我有sudo访问权限,因为' ubuntu'用户。我创建了一个新的Linux用户' wpsite'并为它创建了主目录。我设法转移所有文件&从旧服务器到/home/wpsite/public_html的目录。

然后我创建了一个新的数据库' WP_DB'和一个新的MySQL用户' wp_db_user'并授予对WP_DB的所有访问权。

CREATE USER wp_db_user@localhost IDENTIFIED BY 'thepwd';
GRANT ALL PRIVILEGES ON WP_DB.* TO wp_db_user@localhost IDENTIFIED BY 'thepwd';
FLUSH PRIVILEGES;

现在,我更改了wp-config.php文件

define('DB_NAME', 'WP_DB');
define('DB_USER', 'wp_db_user');
define('DB_PASSWORD', 'thepwd');
define('DB_HOST', 'localhost');

然后我使用wp_db_user帐户从sql dump恢复旧的WP数据库(也尝试使用root用户)。接下来,我在Apache中创建了一个v-host配置,其中包含正确的服务器名称和别名和目录路径,并将域的A-Record更改为AWS实例。到目前为止,一切顺利。没有错误。

当我访问网站时,会显示wordpress网站,但问题是某些内容缺失,包括网站标题。我看了一下错误日志文件,这个错误列在多行:

Access Denied for user 'ubuntu'@'localhost' (using password: no) in /home/wpsite/public_html/wp-content/themes/enterprise-pro/front-page.php on line 5

并且所述行包含以下代码

$sel_home = mysql_query("select * from admin_home_page");

请注意,错误消息中提到的用户不是MySQL用户。它是Linux用户。我无法确定它是否是Wordpress或PHP版本或MySQL的问题。我也不是Linux的专业人士。我已经完成了从博客和其他Stackoverflow问题中读取的所有内容。

该网站在旧服务器上运行良好。有人可以告诉我我做错了什么,以及可以做些什么来解决这个问题?

提前致谢。

编辑:我可以登录WP管理部分,它使用相同的数据库,没有任何错误。

1 个答案:

答案 0 :(得分:0)

执行查询时front-page.php正在做什么,实际上并没有向MySQL提供密码(根据错误消息中的"使用密码:no"位)。如果你能弄清楚那个脚本正在做什么来与数据库交谈,你就必须修改它以提供密码。