Search code examples
phpmysqlmysqliwampserverwamp64

Database exists but returns an error saying "Unknown Database"


I installed WAMP server few hours ago into my Windows 10 64-bit computer. I used phymyadmin to create a database named 'testdb' and tried to connect to it with a php file. I am sure that I created the database, but it returns this error:

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

Here is the php file.

<?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);
?>

My problem is kind of similar (but not exactly same) to the following question.:

Database is created but return error as unknown database

(However in that case, the database was not created by the original poster. In this case, I am pretty sure I have created the database.)

Additional information

  1. All wamp services are running.
  2. 'Root' user has privileges to access the database.(proof)
  3. MySQL console confirms the existence of the database. (proof)
  4. Wamp Server version 3.2.2.2

Solution

  • In the newer versions of Wampserver, the port for MySQL has changed from 3306 to 3308 (you can see it in your first screenshot). You will need to update your connection to specify that port. Otherwise you will be hitting the MariaDB installed with WAMP which does not have that database within it.

    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);
    

    As pointed out in the comments, it is also possible to make MySQL your default database which would also solve your problem. You can get the instructions from the DBA Stack Exchange site.