ERROR: SQLSTATE[HY000] [2002] No connection could be made because the target machine actively refused it

168,959

Solution 1

If the WAMP icon is Orange then one of the services has not started.

In your case it looks like MySQL has not started as you are getting the message that indicates there is no server running and therefore listening for requests.

Look at the mysql log and if that tells you nothing look at the Windows event log, in the Windows -> Applications section. Error messages in there are pretty good at identifying the cause of MySQL failing to start.

Sometimes this is caused by a my.ini file from another install being picked up by WAMPServers MySQL, normally in the \windows or \windows\system32 folders. Do a search for 'my.ini' and 'my.cnf' and if you find one of these anywhere outside of the \wamp.... folder structure then delete it, or at least rename it so it wont be found. Then restart the MySQL service.

Solution 2

I had a similar issue when trying to migrate a Drupal website from one local host to another. From Mac running XAMMP to Windows running WAMP.

This was the error message I kept getting when trying to access the pages of the website.

PDOException: SQLSTATE[HY000] [2002] No connection could be made because the target machine actively refused it. 
in drupal_get_installed_schema_version() (line 155 of C:\wamp\www\chia\includes\install.inc).

In settings.php, I've changed everything correctly, database name, user and password.

$databases = array (
  'default' => 
  array (
    'default' => 
    array (
      'database' => 'mydatabasename',
      'username' => 'mydbusername',
      'password' => 'mydbpass',
      'host' => 'localhost',
      'port' => '8889',
      'driver' => 'mysql',
      'prefix' => '',
    ),
  ),
);

After a couple of hours of mindless google searching I've changed the port to a empty value:

'port' => '',

And after that the site loaded properly.

Solution 3

Possibly using different Port for MySQL than using in your Code

enter image description here

$conn = new PDO("mysql:host=".SERVER_NAME.";port=3307;dbname=".DB_NAME, DB_USER, DB_PASS);

Both ports should be same.

Solution 4

Ensure your WAMP Server (or XAMP) is working, i.e. the wamp icon should be green.

Solution 5

Restart your wampServer... that should solve it. and if it doesn't.. Resta

Share:
168,959
user3406220
Author by

user3406220

Updated on December 25, 2021

Comments

  • user3406220
    user3406220 over 2 years

    An error suddenly occurred while I was debugging my code. It has this series of errors regarding the connection to database.

    ERROR: SQLSTATE[HY000] [2002] No connection could be made because the target machine actively refused it.
    ( ! ) Fatal error: Uncaught exception 'PDOException' with message ' in C:\wamp\www\web\main\users.php on line 15
    ( ! ) PDOException: SQLSTATE[HY000] [2002] No connection could be made because the target machine actively refused it. in C:\wamp\www\web\main\users.php on line 15
    

    this is the code of where the error is pointing

    function __construct()
            {
                $this->con = new PDO("mysql:host=".$this->host.";dbname=".$this->db,$this->user,$this->pass);
            }
    

    I don't know what to do since I do not usually get problems like this so I haven't studied much about WAMP. Thank You for your help.