我一直在本地开发一个简单的站点,现在我已准备好将它部署到我的服务器 - 该站点在本地运行。该站点从MySql数据库读取并部署在Ubuntu服务器上 - 我已经安装了所需的一切。
我页面的内容是:
include "Connection.php";
$db_handle = mysql_connect($server, $user_name, $password);
$db_found = mysql_select_db($database, $db_handle);
//code continues
Connection.php的内容是:
<?php
$user_name = "myuser";
$password = "123456";
$database = "results";
$server = "localhost";
?>
使用PhpMyAdmin我创建了“results”数据库,并为其分配了一个名为“myuser”的用户,并拥有所有权限。 当我尝试导航到该网站时,我收到错误:
Access denied for user 'www-data'@'localhost' (using password: NO)
这让我觉得网站没有阅读我的“Connection.php”文件。我是对的,我该如何解决这个问题?我是否需要更改网站文件夹或其他任何内容的权限?
答案 0 :(得分:0)
使用一些调试......
尝试使用require()
如果PHP解释器无法包含文件以响应调用 include()或include_once(),生成和执行中的警告 继续没有该文件。其中,未包含文件 由require()或require_once()调用生成致命错误和 执行就在那里停止。
当脚本连接失败或包含文件时,使脚本抛出错误。
再次检查用户名和密码。这包括您甚至检查用户是否存在。
答案 1 :(得分:0)
当你没有有效的连接,并尝试数据库查询时,php / mysql将尝试使用运行apache和php的系统用户“www-data”创建连接。
在mysql_connect()中捕获错误并打印mysql_error()消息,这将有所帮助。可能是因为超出了最大连接数。
尝试使用mysql_connect&amp; amp;中的硬编码细节mysql_select_db函数只是为了测试。
同时检查是否包含Connection.php。使用“require”而不是include,以便在文件丢失时抛出错误。