Mysql - 无法连接未知数据库'databasename'错误

Posted

技术标签:

【中文标题】Mysql - 无法连接未知数据库\'databasename\'错误【英文标题】:Mysql - Couldn't connect unknown database 'databasename' errorMysql - 无法连接未知数据库'databasename'错误 【发布时间】:2021-03-22 13:53:00 【问题描述】:

我正在使用 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。我相信人们之所以投反对票,是因为您没有帮助缩小问题的范围,例如,您应该输入收到的错误消息。这个问题的答案可以是任何东西(顺便说一句,我没有对你投反对票:)) 【参考方案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 中的配置文件以确保它连接到正确的服务器

【讨论】:

以上是关于Mysql - 无法连接未知数据库'databasename'错误的主要内容,如果未能解决你的问题,请参考以下文章

MySQL存储

pymysql.err.InternalError:(1049,“未知数据库”)

Mysql 启动 mysql 的未知错误和启动 apache 的未知错误的问题

PHP,MySQL返回“连接失败:服务器请求客户端未知的身份验证方法” [重复]

MySQL 5 左连接未知列

thinkphp3.2 连接Mysql5 报错 服务器向客户端发送未知的字符集。