I've been having some issues trying to log in as non-root users from a .php file onto phpMyAdmin.
I've set up a login form that uses the root user to check if the login that someone uses matches an entry in the mysql.User table and then stores the username and password as session variables which I'm using to try and log in to MySQL and perform user specific tasks later.
This is the code I'm having issues with:
$host = "localhost"; // Host name
$username = $_SESSION['myusername']; // Mysql username
$password = $_SESSION['mypassword']; // Mysql password
$db_name = "gcim"; // Database name
$tbl_name = "permissions"; // Table name
// Create connection
$conn = new mysqli($host, $username, $password, $db_name);
myusername and mypassword are just the session variables I've stored and they're set to the values exactly how they should be, "gcim" is the database I'm trying to access and "permissions" is the table
Trying to execute the code results in the following:
Warning: mysqli::mysqli(): (HY000/1045): Access denied for user 'BUT03'#'localhost' (using password: YES) in C:\xampp\htdocs\gcim\permissions\permissions.php on line 12
Connection failed: Access denied for user 'BUT03'#'localhost' (using password: YES)
I'm pretty sure that the issue isn't a wrong hostname, username or password because even if I change the connection line to:
$conn = new mysqli("localhost", "BUT03", "test", "gcim");
it still gives me the same error
Here's the setup of my mysql.User table:
http://puu.sh/dDxd3/5e25f315f4.png
Anyway, any help would be very much appreciated,
Thanks
EDIT: I've been experimenting and I've come to the conclusion that the ONLY way to get a successful login to MySQL is using the root account with no password, any attempt to log in with a password will give me the same error, as well as removing the password from a non-root account and trying to log in with no password which gives me the following error: Connection failed: Access denied for user ''#'localhost' to database 'gcim'
I have a feeling that there's some issue with the server settings, was I meant to change anything from the default phpMyAdmin settings?
EDIT: I just tried to log in to phpMyAdmin itself as 'BUT03'#'localhost' and I appear to have no privileges at all even though everywhere I can see I've granted all possible privileges to that account, could this be affecting anything and does anyone know what could be causing it?
I assume passowrds are saved not in plain text, but hashed. That would mean your hashed password is 'test', and you actual password is something unknown. Change your password to test with this function
SET PASSWORD FOR 'BUT03'#'localhost' = PASSWORD('test');
see:
http://dev.mysql.com/doc/refman/5.0/en/set-password.html
I am using wamp. After setting up a password for my "root" "localhost" user in phpmyadmin the login screen reads: "#1045 - Access denied for user 'root'#'localhost' (using password: NO)" and it doesn't allow me to log in, neither does it ask me for a password...
I think I am supposed to add a password in wamp folder/phpmyadmin/config.inc.php but I don't know where?
If you are running the new WampServer 2.4 which includes phpmyadmin 4.0.4 then authentication has been changed to cookie.
This means phpmyadmin throws you a login page.
If this is your first time using it, the Userid = root and the password is blank ( nothing )
You can now add a password from the first page that loads after a successful login.
Once the password has been changed, your next access attempt will throw the login dialof again. User root and the new password.
Search for the following line in your config.inc.php and add the password there:
$cfg['Servers'][$i]['password'] = '';
I installed xampp,but when I tried to run it I got an error as thus:
Error
MySQL said: Documentation
1045 - Access denied for user 'root'#'localhost' (using password: NO)
Connection for controluser as defined in your configuration failed.
phpMyAdmin tried to connect to the MySQL server, and the server rejected the connection. You should check the host, username and password in your configuration and make sure that they correspond to the information given by the administrator of the MySQL server.
I tried to search on internet for a solution, but I still can't fix my problem. I have already checked whether I used a password or not in config.inc.php file but i have not used any password.Also, when i try to access with a password, I still can't solve this problem.
I hope anyone can help me. .thank you
I had this problem after changing the password for the root user in phpMyAdmin. I know nothing about programming but I solved it by doing the following:
Go to file C:\wamp\apps\phpmyadmin3.2.0.1\config.inc.php (I guess you would replace "wamp" with the name of your server if you're not using Wamp Server)
Find the line $cfg['Servers'][$i]['password']='' and change this to
$cfg['Servers'][$i]['password']='NO'
Try opening phpMyAdmin again, and hopefully the message will now read "Access denied for user 'root'#'localhost' (using password: YES)
Now change the password in the above line to 'yourpassword' (whatever you had set it to before)
Try this:
Open config.inc.php file in the phpmyadmin directory
Find line 21: $cfg['Servers'][$i]['password'] = '';
Change it to: $cfg['Servers'][$i]['password'] = 'your_password';
Restart XAMPP
Reference
Go to the file C:\wamp\apps\phpmyadmin3.2.0.1\config.inc.php
Find the line $cfg['Servers'][$i]['password']='' and change it to
$cfg['Servers'][$i]['password']='root'
where root is the name of the password you had set in this instance
Hope this helps somebody.
Step one: Go to...
C:\xampp\phpMyAdmin
Step Two: Open the config.inc.php file
Step Three: Locate the following information and change the password.
/* Authentication type and info */
$cfg['Servers'][$i]['auth_type'] = 'config';
$cfg['Servers'][$i]['user'] = 'ENTER_YOUR_USER_NAME_HERE';
$cfg['Servers'][$i]['password'] = 'ENTER_YOUR_PASS_HERE';
$cfg['Servers'][$i]['extension'] = 'mysqli';
$cfg['Servers'][$i]['AllowNoPassword'] = true;
$cfg['Lang'] = '';
Here's the solution to getting the 1045 Access denied for user 'root'#'localhost' (using password: NO) in phpMyAdmin.
First here's what happens:
The problem occurs when you change over from using phpMyAdmin with no password and mysql with no root password. You change root in mysql to having a root password. You dutifully change phpMyAdmin's config.ini.php file's $cfg['Servers'][$i]['password']='' line to include your password and restart everything you can find, but phpMyAdmin still can't get through.
The reason is that your browser still contains cookies for phpMyAdmin and those cookies reflect not needing a password to access mysql.
The solution:
Clear out the cookies relating to phpMyAdmin. Its browser specific, but in my Firefox, its under Tools > Page Info > Cookies.
You might need to relog in with phpMyAdmin or use the signon.php script (under /examples in my WAMP install).
Try this:
1. xampp/htdocs/xampp/cds.php
change line 4 to: mysql_connect("localhost","root","enter password here");
change line 64 to: if(!mysql_connect("localhost","root","enter password here"))
From here
reset your mysql password on xampp security page.
restart your mysql service and then access the phpmyadmin page using your password. i tried it. this is working fine for me.
I'm using Linux Mint 18.2 of this writing. I had a similar issue; when trying to load myphpadmin, it said: "1045 - Access denied for user 'root'#'localhost' (using password: NO)"
I found the file in the /opt/lampp/phpmyadmin directory. I opened the config.inc.php file with my text editor and typed in the correct password. Saved it, and launched it successfully. Profit!
I was having problems with modifying folders and files, I had to change permission to access all my files in /opt/lampp/ directory. I hope this helps someone in the future.
I'm afraid there's a conflict with the port number(80). Make sure you don't run some software like Skype that use the same port 80
I think to troubleshoot your problem you should try the following:
Check whether the MySQL service is running (Control Panel --> services)
Use a MySQL client like SQLYOG to check whether you are able to connect to MYSQL Server with the username and password you are using in your code.
Just try a sample php program, which fetches the data from table
Ex. http://www.anyexample.com/programming/php/php_mysql_example__display_table_as_html.xml
1045 - Access denied for user 'root'#'localhost' (using password: NO)
solution:
Step 1: Open Location of you wamp/xampp
Step 2: Go to phpmyadmin
Step 3: Open config.inc.php
Step 4: Change the password to the password set for the MySql server and not anything else in this: $cfg['Servers'][$i]['password'] = ''
Step 5: Restart all services /restart wamp/xampp.
I had this problem with a fresh install of wamp and using only default settings without setting any passwords. I found an incorrect default setting and I solved it by the following steps:
Go to C:\wamp\apps\phpmyadmin4.1.14 (Your phpmyadmin version# may differ)
open the file config.inc in a text editor
find the line: $cfg['Servers'][$i]['host'] = '127.0.0.1';
change it to $cfg['Servers'][$i]['host'] = 'localhost';
save the file
restart all services in wamp
The problem seems to be that someone forgot to make the server and host match in the configuration files.
Try resetting your password since it seems it has changed you can reset your password by going to
C:\xampp\mysql
and clicking on the resetroot.bat file
Then change in the php config file the password back to blank and you should have access again
Open the config.inc.php file in the WAMP phpmyadmin directory
Change the line ['Servers'][$i]['password'] = ''
to
$cfg['Servers'][$i]['password'] = 'your_mysql_root_password';
Clear browser cookies
Then Restart all services on WAMP
This worked for me.
NB: the password to use has to be the MySQL password.....
My.ini from the file #password and #bind-address="127.0.0.1" are commented change the password to root and uncomment bind-address="127.0.0.1" and from the file cds.php change the
mysql_connect("localhost", "root", ""); to
mysql_connect("localhost", "root", "root");
Stop the Mysql services and try login again it got logged in.
I had this same problem after I dropped the special PhpMyAdmin controluser account from MySQL.
I had to update the config.inc.php file and replace the entries for 'controluser' and controlpass' with 'user' and 'password'.
So my file ended like this:
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password']='123456';
If you are using XAMPP rather than WAMP, the path you go to is:
C:\xampp\phpMyAdmin\config.inc.php
On OSX
I had same difficult, but a figure out a solucition
open terminal
put 'cd /Applications/XAMPP/xamppfiles'
put 'sudo ./xampp security'
then put your root password and answer the questions
Check your MySQL Port number 3306.
Is there any other MySQL Install in your system on same port ?
If any installation found the change the port number to any number between 3301-3309 (except 3306)
user name : root
password : ' ' (Empty)
try to go to Windows services and stop the MySQL service
go to your wamp server and click on "restart all services".
Refrsch your browser
I created a database named auth yesterday in mysql.
Today, I went to access it by USE auth; but I got this output
ERROR 1044 (42000): Access denied for user ''#'localhost' to database 'auth'
I never used to have this problem when I created and used databases.
Connect to database with root
mysql -u root -pyourpassword
(change yourpassword with password you have for root or leave in blank in case you havent set it). Now you should have access to your db. Check this thread how to set permissions for users MySQL Add User Guide.
maybe try creating and using a new database to see if the problem is repeatable, or if it's specific to that database.
I have my config.inc.php file, and have set my host name to localhost. Unfortunately, I have no idea what my username/password should be. Is that something I need to configure on the MySql side? I tried creating an arbitrary username/password (admin/password), but when I try to log into phpMyAdmin with those credentials, I get an error: (#1045 - Access denied for user 'admin'#'localhost' (using password: YES))
Can anyone point me in the right direction? (Sorry for the dumb question; I just haven't had to install mysql before. I've always had a host name / username / password given to me.)
Thanks!
root with no password.
$cfg['Servers'][$i]['user'] = 'root'; // MySQL user
$cfg['Servers'][$i]['password'] = ''; // MySQL password (only needed
here you have the default privileges in mysql, and how to change them.
http://dev.mysql.com/doc/refman/5.0/en/default-privileges.html
What installation of mysql are you using? Without knowing that its very hard to know. I would recommend getting the wamp installation and remembering that the usual "normal" installation uses user name: root and no password
I had this problem before, you need to go and look up the password in the config files yourself, since phpMyAdmin's interface will hide the password from you. It's a pain... unfortunately I'm too lazy to install it myself and find exactly where it is for you.