【问题标题】:Mysql - Couldn't connect unknown database 'databasename' errorMysql - 无法连接未知数据库'databasename'错误
【发布时间】:2020-06-25 04:41:35
【问题描述】:

我正在使用 PDO 连接到 mySql 数据库。尽管我可以连接到已创建的数据库(默认情况下已创建),但我无法连接到我创建的任何数据库。我正在使用 wamp 服务器。

<?php
try{
$dbh=new PDO("mysql:host=localhost;dbname=mydata","root","");
}catch(Exception $e){
    die("ERROR: Couldn't connect. {$e->getMessage()}");
}
?>

如果我用以前在 wamp 服务器中创建的数据库 mysql 替换 mydata,那么代码可以完美运行。唯一的问题是我创建的数据库。我曾尝试赋予 mydata 与 mysql 数据库相同的权限,但它不起作用。

【问题讨论】:

  • 您是否连接到与您的 phpmyadmin 相同的 mysql 实例?
  • @LuckyGrewal。我相信人们之所以投反对票,是因为您没有帮助缩小问题的范围,例如,您应该输入收到的错误消息。这个问题的答案可以是任何东西(顺便说一句,我没有对你投反对票:))

标签: php mysql pdo phpmyadmin


【解决方案1】:

您的代码和您的 phpmyadmin 只是连接到不同的数据库服务器。例如,如果您的 PC 上安装了多个数据库服务器,则可能会发生这种情况。

要获得证明,请在 phpmyadmin 中运行以下查询:

show databases;

然后在 PDO 中运行相同的查询:

$host = 'your db host';
$user = 'your db username';
$pass = 'your db password';

$pdo = new PDO("mysql:host=$host", $user, $pass, [PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]);
$databases = $pdo->query('show databases')->fetchAll(PDO::FETCH_COLUMN);
var_dump($databases);

或mysqli

$host = 'your db host';
$user = 'your db username';
$pass = 'your db password';

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = mysqli_connect($host, $user, $pass);
$databases = $mysqli->query('show databases')->fetch_all();
var_dump($databases);

并比较输出。它会告诉你要么存在拼写错误,要么确实 phpmyadmin 和 PHP 连接到不同的数据库服务器。

然后您可以检查 PHPmyAdmin 中的配置文件以确保它连接到正确的服务器

【讨论】:

    猜你喜欢
    • 2012-06-19
    • 2020-07-21
    • 2016-06-05
    • 2021-06-27
    • 2013-04-13
    • 2020-11-13
    • 1970-01-01
    相关资源
    最近更新 更多