Mysql - 无法连接未知数据库'databasename'错误
Posted
技术标签:
【中文标题】Mysql - 无法连接未知数据库\'databasename\'错误【英文标题】: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。我相信人们之所以投反对票,是因为您没有帮助缩小问题的范围,例如,您应该输入收到的错误消息。这个问题的答案可以是任何东西(顺便说一句,我没有对你投反对票:)) 【参考方案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'错误的主要内容,如果未能解决你的问题,请参考以下文章
pymysql.err.InternalError:(1049,“未知数据库”)
Mysql 启动 mysql 的未知错误和启动 apache 的未知错误的问题