致命错误 - 无法连接到数据库

问题描述:

我想创建一个简单的PHP博客并从这里下载演示文件 - https://daveismyname.com/creating-a-blog-from-scratch-with-php-bp致命错误 - 无法连接到数据库

创建数据库(名为blog01)和表成功。

上的index.php我有一个错误:
Fatal error: Uncaught exception 'PDOException' with message ' in D:\localhost\blog-01\includes\config.php on line 11

的config.php:

define('DBHOST','localhost'); 
define('DBUSER','username'); 
define('DBPASS','password'); 
define('DBNAME','blog01'); 

$db = new PDO("mysql:host=".DBHOST.";port=8889;dbname=".DBNAME, DBUSER, DBPASS); 
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 

我尝试的用户名和密码(演示,管理......)的所有组合都没有成功。

也尝试没有port=8889

php版本 - 5.6.14

任何帮助。

+0

所以'config.php'线11'$ DB =新PDO( “mysql的:主机=” DBHOST“;港口= 8889; dbname =“。DBNAME,DBUSER,DBPASS);'? –

+2

'config.php'中似乎没有11行# – Marcus

+0

您的服务器真的在端口8889上侦听吗? MySQL的标准端口是3306。错误的端口会产生一个错误 – Zimmi

您可以添加一个尝试和挂钩看到exception的消息:

try { 
$db = new PDO("mysql:host=".DBHOST.";port=8889;dbname=".DBNAME, DBUSER, DBPASS); 
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
} catch (PDOException $e) { 
    echo $e->getMessage(); 
    exit; 
} 

当端口是不一样的默认端口(3306为MySQL)

时才需要的端口

如果是这样的话那么连接是:

$db = new PDO("mysql:host=".DBHOST.";dbname=".DBNAME, DBUSER, DBPASS); 
+0

佩里,现在我有这个 - SQLSTATE [HY000] [1045]访问被拒绝用户'Admin'@'localhost'(使用密码:是)' – bonaca

+0

@bonaca好的,这意味着用户名和/或密码不正确。您应该检查您要使用的用户是否存在,并且密码属于该用户。你有没有安装phpmyadmin?这是一个简单的方法来验证,如果是不正确的,你可以更改或添加一个新的用户到你的mysql – Perry

+0

我检查表'blog-members'。只有一个用户,名为Admin,密码是$ 2y $ 10 $ wJxa1Wm0rtS2BzqKnoCPd.7QQzgu7D/aLlMR5Aw3O.m9jx3oRJ5R2'。我怎样才能知道真正的密码? – bonaca