Search code examples
phpmysqlaccess-denied

"Connect failed: Access denied for user 'root'@'localhost' (using password: YES)" from php function


I wrote some function used by a php webpage, in order to interact with a mysql database. When I test them on my server I get this error:

"Connect failed: Access denied for user 'root'@'localhost' (using password: YES)" 

I am able to use them on my pc (using XAMPP) and I can navigate through the tables of the database using the command line in the server. However, the webpage fails to connect. I've checked the password but with no results. It's correct (otherwise I could not log in to mysql from the command line).

The call of the function is the following:

$conn = new mysqli("localhost", "root", "password", "shop");

Do I have to set something in my server? Thanks

Edit: PHP version 5.3.3-7+squeeze1 mysql version: 5.1.49-3 both on debian


Solution

  • I solved in this way: I logged in with root username

    mysql -u root -p -h localhost
    

    I created a new user with

    CREATE USER 'francesco'@'localhost' IDENTIFIED BY 'some_pass';
    

    then I created the database

    CREATE DATABASE shop;
    

    I granted privileges for new user for this database

    GRANT ALL PRIVILEGES ON shop.* TO 'francesco'@'localhost';
    

    Then I logged out root and logged in new user

    quit;
    mysql -u francesco -p -h localhost
    

    I rebuilt my database using a script

    source shop.sql;
    

    And that's it.. Now from php works without problems with the call

     $conn = new mysqli("localhost", "francesco", "some_pass", "shop");
    

    Thanks to all for your time :)