Warning: mysqli_connect(): (HY000/1045): Access denied for user 'username'@'localhost' (using password: YES)

PhpMysqlDatabasePhpmyadminLocalhost

Php Problem Overview


>Warning: mysqli_connect(): (HY000/1045): Access denied for user 'username'@'localhost' (using password: YES) in C:\Users\xampp\htdocs\PHP_Login_Script\config.php on line 6

>Warning: mysqli_real_escape_string() expects parameter 1 to be mysqli, boolean given in C:\Users\xampp\htdocs\PHP_Login_Script\login.php on line 10

>Warning: mysqli_real_escape_string() expects parameter 1 to be mysqli, boolean given in C:\Users\xampp\htdocs\PHP_Login_Script\login.php on line 11

>Warning: mysqli_query() expects parameter 1 to be mysqli, boolean given in C:\Users\xampp\htdocs\PHP_Login_Script\login.php on line 15

>Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, null given in C:\Users\xampp\htdocs\PHP_Login_Script\login.php on line 16

>Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, null given in C:\Users\xampp\htdocs\PHP_Login_Script\login.php on line 19

I'm getting this error above on localhost even if my config file is like this:

<?php

    define("DB_HOST", "localhost");
    define("DB_USER", "root");
    define("DB_PASSWORD", "");
    define("DB_DATABASE", "databasename");

    $db = mysqli_connect(DB_SERVER, DB_USERNAME, DB_PASSWORD, DB_DATABASE);

?>

This used to work, but now it doesn't anymore. Is there any problem with this code or is it not working now? This is the tutorial I am working on right now.

Php Solutions


Solution 1 - Php

That combination of username, host, and password is not allowed to connect to the server. Verify the permission tables (reloading grants if required) on the server and that you're connecting to the correct server.

Solution 2 - Php

If youre running wamp update

define("DB_HOST", "localhost");

To your machines ip address (mine is 192.168.0.25);

define("DB_HOST", "192.168.0.25");

You can find it on window by typing ipconfig in your console or ifconfig on mac/linux

Solution 3 - Php

Make sure that your password doesn't have special characters and just keep a plain password (for ex: 12345), it will work. This is the strangest thing that I have ever seen. I spent about 2 hours to figure this out.

Note: 12345 mentioned below is your plain password

GRANT ALL PRIVILEGES ON dbname.* TO 'yourusername'@'%' IDENTIFIED BY '12345';

Solution 4 - Php

mysqli_connect(DB_SERVER,DB_USERNAME,DB_PASSWORD,DB_DATABASE);

use DB_HOST instead of DB_SERVER

Solution 5 - Php

Look at your code You defined DB_HOST and querying DB_SERVER. DB_USER and DB_USERNAME Use this code

define("DB_SERVER", "localhost");
define("DB_USER", "root");
define("DB_PASSWORD", "");
define("DB_DATABASE", "databasename");

$connect = mysqli_connect(DB_SERVER , DB_USER, DB_PASSWORD, DB_DATABASE);

Solution 6 - Php

you defIne as DB_USER but use as DB_USERNAME. Also php says username@localhost cant access. Not root@localhost.

Change your define or connect paramater.

Solution 7 - Php

I have fixed a few things here, the "DB_HOST" defined here should be also DB_HOST down there, and the "DB_USER" is called "DB_USER" down there too, check the code always that those are the same.

<?php
    define("DB_HOST", "localhost");
    define("DB_USER", "root");
    define("DB_PASSWORD", "");
    define("DB_DATABASE", "");

    $db = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_DATABASE);
?>

Solution 8 - Php

The same issue faced me with XAMPP 7 and opencart Arabic 3. Replacing localhost by the actual machine name reslove the issue.

Solution 9 - Php

Use this

After setup this you will not receive this issue again

SET PASSWORD FOR root@localhost = PASSWORD('your_root_password');

I was stuck up in this issue after used this query everything was solved

Solution 10 - Php

This is your code:

<?php

    define("DB_HOST", "localhost");
    define("DB_USER", "root");
    define("DB_PASSWORD", "");
    define("DB_DATABASE", "databasename");

    $db = mysqli_connect(DB_SERVER, DB_USERNAME, DB_PASSWORD, DB_DATABASE);

?>

The only error that causes this message is that:

  1. you're defining a DB_USER but you're calling after as DB_USERNAME.

Please be more careful next time.

It is better for an entry-level programmer that wants to start coding in PHP not to use what he or she does not know very well.

ONLY as advice, please try to use (for the first time) code more ubiquitous.

ex: do not use the define() statement, try to use variables declaration as $db_user = 'root';

Have a nice experience :)

Solution 11 - Php

The question has been answered above, Just to make you feel comfortable using all four string at the same time in a connection

<?php
  define("DB_HOST", "localhost");
  define("DB_USER", "root");
  define("DB_PASSWORD", "");
  define("DB_DATABASE", "databasename");

  $db = new mysqli(DB_SERVER, DB_USERNAME, DB_PASSWORD, DB_DATABASE);
  // you could test connection eventually using a if and else conditional statement, 
  // feel free to take out the code below once you see Connected!
  if ($db) {
    echo "Connected!";
  } else {
    echo "Connection Failed";
  }
?>

Solution 12 - Php

I had this error trying to connect with a different user than root I'd set up to limit access.

In mysql I'd set up user MofX with host % and it wouldn't connect.

When I changed the user's host to 127.0.0.1, as in 'MofX'@'127.0.0.1', it worked.

Solution 13 - Php

There is a typo error in define arguments, change DB_HOST into DB_SERVER and DB_USER into DB_USERNAME:

<?php

    define("DB_SERVER", "localhost");
    define("DB_USERNAME", "root");
    define("DB_PASSWORD", "");
    define("DB_DATABASE", "databasename");
    $db = mysqli_connect(DB_SERVER, DB_USERNAME, DB_PASSWORD, DB_DATABASE);

?>

Solution 14 - Php

Same problem occurd with me, with AWS RDS MySQL. Just now, answered similar question here. Looked various sources, but as of this thread, almost all lack of answer. While this thread helped me, tweak in mind to update hostnames at server. Access your SSH and follow the steps:

cd /etc/
sudo nano hosts

Now, Appending here your hostnames: For example:

127.0.0.1 localhost
127.0.0.1 subdomain.domain.com [if cname redirected to endpoints]
127.0.0.1 xxxxxxxx.xxxx.xxxxx.rds.amazonaws.com [Endpoints]

and now, configuring config/database.php as follows:

$active_group = 'default';
$query_builder = TRUE;

$db['default'] = array(
	'dsn'	=> '',
	'hostname' => '35.150.12.345',
	'username' => 'user-name-here',
	'password' => 'password-here',
	'database' => 'database-name-here',
	'dbdriver' => 'mysqli',
	'dbprefix' => '',
	'pconnect' => FALSE,
	'db_debug' => TRUE,
	'cache_on' => FALSE,
	'cachedir' => '',
	'char_set' => 'utf8',
	'dbcollat' => 'utf8_general_ci',
	'swap_pre' => '',
	'encrypt' => FALSE,
	'compress' => FALSE,
	'stricton' => FALSE,
	'failover' => array(),
	'save_queries' => TRUE
);

where 35.150.12.345 is your IPv4 Public IP, located at ec2-dashboard > Network Interfaces > Description : RDSNetworkInterface >> IPv4 Public IP('35.150.12.345') there.

Note: Please note that only IPV4 will work at 'hostname' option. hostname, cname, domains will output database connection error.

Solution 15 - Php

In my case the problem was:

define ('DB_PASSWORD', "MyPassw0rd!'");

(the odd single ' before the double ")

Solution 16 - Php

Try the above answers 90% of the time this will be you issue. For me my problem was that my database password had a $ in it.

$servername = '127.0.0.1';
$username = 'user_bob';
$password = 'sdfasdf$B';

$conn = mysqli_connect($servername, $username, $password, 'any_database');

//DO NOT USE DOUBLE QUOTES;
//$password = "sdfasdf$B"; 

Solution 17 - Php

Not that anyone would ever have CAPS on when entering a password...but it can give this error.

Solution 18 - Php

For somebody use XAMPP 8. Actually XAMPP install MySQL in VM, so connect it via IP address show in XAMPP. There is no MySQL server on localhost. enter image description here

Solution 19 - Php

This can happen for a number of reasons. In my case, I just needed to change the port. You can do so by specifying it after a colon when defining DB_HOST.

define( 'DB_HOST', localhost:3308 )

Solution 20 - Php

In the privileges section of the database in phpmyadmin, make sure to use the privileged user and password. My default user is "root" and no password. I got this problem since i was searching in w3schools and copy pasted the whole script in and find out that's the problem

Solution 21 - Php

Here is what solved my problem:

Open config.inc.php

/* Authentication type and info */
$cfg['Servers'][$i]['auth_type'] = 'config';
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = 'something';
$cfg['Servers'][$i]['extension'] = 'mysqli';
$cfg['Servers'][$i]['AllowNoPassword'] = true;
$cfg['Lang'] = '';

This is what part of the file looks like. I removed the password and then was able to log in to localhost/myphpadmin (the place that gave me this error). You might have the issue from somewhere else like trying to go to adminer.

I got this issue because I reinstalled and recopied files so things got messed up. I went an removed the password, accessed myphpadmin and set the password to the database from there and readded the files like above.

Solution 22 - Php

Do you have two connections at the same time? If so, close every time you don't need it.

Solution 23 - Php

$db = mysqli_connect(DB_SERVER,DB_USERNAME,DB_PASSWORD,DB_DATABASE);

Put " DB_HOST " instead of " DB_SERVER " also 
put " DB_USER " Instead of " DB_USERNAME " 

than it working fine !

Solution 24 - Php

try

define("DB_PASSWORD", null);

and those are warnings try

$db = @mysqli_connect(DB_SERVER,DB_USERNAME,DB_PASSWORD,DB_DATABASE);

But i will recommend you to set a root password

Solution 25 - Php

Try changing:

define("DB_SERVER", "localhost");

to this:

define("DB_SERVER", "127.0.0.1");

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
Questionuser2805663View Question on Stackoverflow
Solution 1 - PhpIgnacio Vazquez-AbramsView Answer on Stackoverflow
Solution 2 - PhphooliganView Answer on Stackoverflow
Solution 3 - PhpSathyaView Answer on Stackoverflow
Solution 4 - PhpmoezView Answer on Stackoverflow
Solution 5 - Phphemanth kumarView Answer on Stackoverflow
Solution 6 - PhpheadersalreadysentView Answer on Stackoverflow
Solution 7 - PhpMorrisView Answer on Stackoverflow
Solution 8 - PhpAhmed BahtityView Answer on Stackoverflow
Solution 9 - Phpperumal NView Answer on Stackoverflow
Solution 10 - PhpVictor-Andrei StanculescuView Answer on Stackoverflow
Solution 11 - PhpPrecious TomView Answer on Stackoverflow
Solution 12 - PhpourmandaveView Answer on Stackoverflow
Solution 13 - PhpSajanView Answer on Stackoverflow
Solution 14 - PhpAsharam SeerviView Answer on Stackoverflow
Solution 15 - PhpAndrews32View Answer on Stackoverflow
Solution 16 - Phptanner burtonView Answer on Stackoverflow
Solution 17 - PhpJohn TView Answer on Stackoverflow
Solution 18 - PhpooOllyView Answer on Stackoverflow
Solution 19 - PhpJillian HoenigView Answer on Stackoverflow
Solution 20 - PhpJayden KusumaView Answer on Stackoverflow
Solution 21 - PhpMuhammad Mubashirullah DurraniView Answer on Stackoverflow
Solution 22 - PhpTozeView Answer on Stackoverflow
Solution 23 - PhpBrajbhooshan Singh TomarView Answer on Stackoverflow
Solution 24 - PhpfabribaraView Answer on Stackoverflow
Solution 25 - PhpSamuelView Answer on Stackoverflow