MySQL-无法连接未知数据库“数据库名称”错误

时间:2020-03-13 06:31:04

标签: php mysql pdo phpmyadmin

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

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

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

enter image description here

2 个答案:

答案 0 :(得分:2)

您的代码和您的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中检查配置文件以确保其连接到正确的服务器

答案 1 :(得分:-3)

尝试这种方式

更改 host = localhost ;到 host = 127.0.0.1;