【问题标题】:CakePHP database error. Access deniedCakePHP 数据库错误。拒绝访问
【发布时间】:2013-03-18 08:15:35
【问题描述】:

我最近在我的 hostmonster 共享服务器上安装了 CakePHP,并创建了一个新的数据库和用户(具有完全权限),我得到了以下信息:

Cake is NOT able to connect to the database.

Database connection "Mysql" is missing, or could not be created.
SQLSTATE[42000] [1044] Access denied for user '[user]'@'[host]' to database '[db]'
  • 出于安全考虑,括号中的项目不包括在内。

我已验证 PDO 和 PDO mysql 已启用。凭据已被多次检查和重新检查。我是否缺少其他一些秘密设置,或者主机是否限制了对我的数据库用户的控制?

我的 database.php 配置:

public $default = array(
    'datasource' => 'Database/Mysql',
    'persistent' => false,
    'host' => 'host',
    'login' => 'user',
    'password' => 'pass',
    'database' => 'db',
    'prefix' => '',
    //'encoding' => 'utf8',
);

public $test = array(
    'datasource' => 'Database/Mysql',
    'persistent' => false,
    'host' => 'host',
    'login' => 'user',
    'password' => 'pass',
    'database' => 'db',
    'prefix' => '',
    //'encoding' => 'utf8',
);

此外,我已经能够通过 PDO 通过以下代码使用完全相同的凭据成功连接到数据库:

$hostname = "host";
$db = "db";
$username = "user";
$password = "pas";

try {
  $db = new PDO("mysql:host=$hostname;dbname=$db", $username, $password);
  echo "Connected to database";
}
catch(PDOException $e) {
  echo $e->getMessage();
}

【问题讨论】:

标签: php mysql cakephp hostmonster


【解决方案1】:

SQLSTATE[42000] [1044] 拒绝用户 '[user]'@'[host]' 访问数据库 '[db]'

意味着,蛋糕知道你的数据库详细信息,但它们不起作用。从链中“移除”蛋糕并尝试从 index.php 中自行连接。

然后尝试从控制台连接。

很可能您设置了错误的数据库详细信息,或者它们在数据库端没有足够的权限。

【讨论】:

  • 我这样做是出于我自己的好奇心,通过上面的代码。虽然我还没有从控制台尝试过。
猜你喜欢
  • 1970-01-01
  • 2020-05-09
  • 2017-11-03
  • 1970-01-01
  • 1970-01-01
  • 2012-06-07
  • 2012-02-08
  • 2015-07-18
  • 1970-01-01
相关资源
最近更新 更多