【问题标题】:Database exists but returns an error saying "Unknown Database"数据库存在但返回错误提示“未知数据库”
【发布时间】:2020-09-13 15:17:43
【问题描述】:

几小时前,我在我的 Windows 10 64 位 计算机中安装了 WAMP 服务器。我使用 phymyadmin 创建了一个名为 'testdb' 的数据库,并尝试使用 php 文件连接到它。我确定我创建了数据库,但它返回此错误:

"Warning: mysqli_connect(): (HY000/1049): Unknown database 'testdb' in C:\wamp64\www\projects\index.php on line 7"

这是 php 文件。

<?php
define('DB_SERVER', 'localhost');
define('DB_USERNAME', 'root');
define('DB_PASSWORD', '');
define('DB_NAME', 'testdb');

$link = mysqli_connect(DB_SERVER, DB_USERNAME, DB_PASSWORD, DB_NAME);
?>

我的问题与以下问题有点相似(但不完全相同):

Database is created but return error as unknown database

(但是在这种情况下,数据库不是由原始发布者创建的。在这种情况下,我很确定我已经创建了数据库。)

附加信息

  1. 所有 wamp 服务都在运行。
  2. 'root'用户有权限访问数据库。(proof)
  3. MySQL 控制台确认数据库存在。 (proof)
  4. Wamp 服务器版本 3.2.2.2

【问题讨论】:

  • 我希望每个问题都显示出这么多的努力来调试问题。

标签: php mysql mysqli wampserver wamp64


【解决方案1】:

在较新版本的 Wampserver 中,MySQL 的端口已从 3306 更改为 3308(您可以在第一个屏幕截图中看到它)。您需要更新连接以指定该端口。否则,您将遇到安装了 WAMP 的 MariaDB,它没有其中包含该数据库。

define('DB_SERVER', 'localhost');
define('DB_USERNAME', 'root');
define('DB_PASSWORD', '');
define('DB_NAME', 'testdb');
define('DB_PORT', 3308);

$link = mysqli_connect(DB_SERVER, DB_USERNAME, DB_PASSWORD, DB_NAME, DB_PORT);

正如 cmets 中所指出的,也可以将 MySQL 设为您的默认数据库,这也可以解决您的问题。您可以从DBA Stack Exchange site获取说明。

【讨论】:

  • 非常感谢!当我将文件上传到托管服务器时,我还需要指定端口吗?还是这只是一个垃圾?
  • 虽然你的生产服务器上的端口可能会有所不同,但它不是标准的3306是不寻常的,如果不是,通常由网络主机明确.
  • 您可以切换 WAMPServer 以使用 MySQL 作为默认值,然后它将使用默认端口 3306。然后您无需更改任何内容。尽管其他参数可能会发生变化,但您应该期望必须维护此代码。 您永远不会被允许在托管服务器上使用root,或者希望是没有密码的用户帐户
  • @RiggsFolly - 更好。还有here are the instructions for how to do it
  • 或者你可以读取WAMP文件夹中名为mariadb_mysql.txt的文件
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-09
  • 2014-02-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多