Search the MySQL manual:

4.2.13 Causes of Access denied Errors

If you encounter Access denied errors when you try to connect to the MySQL server, the following list indicates some courses of action you can take to correct the problem:

User Comments

Posted by teb on Wednesday March 6 2002, @12:53pm[Delete] [Edit]

I was getting access denied when trying to select
from a table, where I had specifically given the
user select privs (in tables_priv table). turned
out to be an issue with case sensitivity: if you
grant privileges on a table using upper case for
db name, but then try to access the db in
lowercase (as I had done), you will get the
"denied" message. This is actually in the
documentation under "how privileges work', but
easy to miss.

Posted by Tim Morton on Monday June 3 2002, @2:22pm[Delete] [Edit]

For Windows users:
Problem: getting an access denied message when
trying to use the GRANT command while logged in
as root user.
Background: had data from a previous version of
Mysql in c:\mysql\data.
Solution: renamed c:\mysql\data\mysql to
c:\mysql\data\old_mysql and then reinstalled the
binary. (I could not find
any 'mysql_fix_privilege_tables' script for
windows in the distribution nor online)

Posted by Joerg Prante on Tuesday August 20 2002, @2:30am[Delete] [Edit]

One case not mentioned here and you get an 1045 "Access denied"
error is when you don't have the privilege to alter system
tables
using "LOCK TABLES". The connect succeeds, but a "LOCK TABLES"
query fails. Then you should ask the MySQL administrator to
extend your privileges. The "LOCK TABLES" command is
writing to the system tables. If the MySQL administrator
decided to grant you all privileges only on your database, say
foo.*, this won't be sufficient. You will need write access to
'mysql' database. If you don't have that, you will get a MySQL
error "#1045 access denied" at the "LOCK TABLES" query. So, the
case of "LOCK TABLE"
privilege in MySQL breaks a privilege system where
administrators decided to grant privileges ordered by database
hierarchy.

Posted by Eric Scuccimarra on Wednesday January 22 2003, @11:38am[Delete] [Edit]

I started getting access denied errors this morning. Some of them are 1044 and some are 1045. I have tried everything I can find and nothing seems to work. I can connect using root as the user and the root password but it still tells me that access denied for user: 'root@localhost'.

I have tried to run all of the scripts and none of them will run because access is denied. I can't change the host files or anything because access is denied.

Posted by Eric Latham on Tuesday February 11 2003, @8:42am[Delete] [Edit]

You have to put single quotes around your password.
e.g. mysql -u root -p'xxxxxx' [databases name]
P.S. Drove me crazy too :-\

Posted by [name withheld] on Saturday February 22 2003, @11:48pm[Delete] [Edit]

i have a Q. i use php and mysql to do a website.
when i use register function in localhost, then i can insert the data to db. But when i my friend use distance computer, then it can not add the new record to db.
$db = mysql_connect("localhost", "");
mysql_select_db("bookshop",$db);
$sql = "INSERT INTO ctinf (usn,paw,given,family,addre,email,phone,ccard)
VALUES ('$uid','$psw','$gvn','$fyn','$addre','$ema','$phn','$ccad')";
$result = mysql_query($sql);
this is my code. and u try to use ("localhost", "root"). also can not. plese tell me what should i do?
thx a lot!

Posted by Mason McDaniel on Wednesday April 9 2003, @9:40pm[Delete] [Edit]

I was able to get on by

user% sudo mysql -u root -p db_name_whatever (hit enter)
password: your_pass

ta da!

Posted by thomas chen on Monday April 14 2003, @1:56am[Delete] [Edit]

I have a problem in connecting to the remote Mysql Server;The ERROR #2013 , what mean? Is anybody else can tell me the above Error # meaning?

thank q !!

Posted by Aaron Gray on Sunday April 20 2003, @1:17am[Delete] [Edit]

MySQL 4.0.12-nt

Installed, ran mysqladmin -u root password 'newpass' and mysqladmin -h localhost flush-privileges all without a problem. When I run mysql -h localhost -u root -p I get:

ERROR 1045: Access denied for user: 'root@127.0.0.1' (Using password: YES)

There is no user root@127.0.0.1 only a user root@localhost. localhost is in my \windows\hosts as well as my windows\system32\drivers\etc\hosts.

System is XP Pro.

Posted by Alison Ngai on Friday April 25 2003, @11:03pm[Delete] [Edit]

I have a connection error but I can't find where is the problem came from. Do anyone know, please give me some suggestion.

MySQL Connection Failed: Access denied for user: 'mysql@domain_name' (Using password: YES) in /usr/local/apache/htdocs/test7.php on line 3
unable to connect

Posted by Andrew Eigus on Friday May 2 2003, @4:19am[Delete] [Edit]

essential information for Microsoft Access MySQL users:

sometimes, when you use Microsoft Access to update tables, you get unexpected "access denied for user: '@YOUR_IP_ADDRESS'" errors, which is to be solved in the following way:

Microsoft Access 2000/2002 Jet/ODBC database engine uses default anonymous logins by default, and you should tweak the following registry key so that the ODBC DSN's options were used, instead:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\ODBC]
"TryJetAuth"=dword:00000000

hope this helps,

Andrew Eigus
Astros Information Technologies - Riga

Posted by [name withheld] on Sunday May 4 2003, @8:19am[Delete] [Edit]

I have a small network in my home. My RH8.something server has DHCP and DNS for my small domain (.home.tesmer.org). I do not have DNS names for the hosts on DHCP.

When trying to run MySQLCC in WinXP on a DHCP'd host, I continually got "[gummy] ERROR 2013: Lost connection to MySQL server during query" (gummy is the dns name of the host running the MySQL instance).

I added skip-name-resolve under [mysqld] in my.cnf and restarted the mysqld using the init script, and viola, it worked.

Posted by ricland ricland on Sunday May 4 2003, @5:51pm[Delete] [Edit]

Why in the world does a fresh install om mysql seem to look for a errmsg.sys file in the location of an deleted program while the file is exactly where it's supposed to be in its own directory? Better yet, how do I let mysql know this? It doesn't connect to the database because of it.

Ric

Posted by [name withheld] on Friday May 9 2003, @7:55am[Delete] [Edit]

my situation is as follows:
Microsoft OLE DB Provider for ODBC Drivers '80004005'

[MySQL][ODBC 3.51 Driver]Access denied for user: 'nelson@192.168.0.2' (Using password: YES)

/forum/inc_header.asp, 60

what i've done is that i backup all the data files in my database and then format and reinstall the window. After that i install the mysql server and add the original [data] back to the folder. However i do not succeed.

DO you know what's the problem, and how to deal with this?

Posted by hauser on Friday May 23 2003, @11:00pm[Delete] [Edit]

as per bug http://bugs.mysql.com/bug.php?id=488, I am stuck with <<Host ... is not allowed to connect to this MySQL server>> - could you provide examples what to do to add the described rows.
MySQL is an underlying tool, after being able to set it up, I no longer need to know SQL commands.

Posted by [name withheld] on Saturday May 31 2003, @11:48pm[Delete] [Edit]

Joerg Prante, I could kiss you. I thought it was something like that. Your solution was what I was looking for: I reinstalled the binaries, ran mysqld, and now seem good to go (although it now appears to be hanging later on in the script, huh?) And thank you for inserting the Windows perspective in a breadcrumb trail that leads from a Windows error to a thread on Unix. I say it again: This documentation is in very poor shape.

Posted by [name withheld] on Thursday July 31 2003, @3:58am[Delete] [Edit]

when you are simply trying to:
C:\mysql\bin>mysql -uroot -p mysql

and you get:

ERROR 1044: Access denied for user: '@127.0.0.1' to database 'mysql'

Here is what I do. The key is to supply your real ip address for the -h (host) parameter. On windows, from the command prompt type 'ipconfig' to see your ip address. Once you have that, do the following:

C:\mysql\bin>mysql -h 192.168.0.1 -u root -p mysql
Enter password: ****************

// then I explicitly add root@127.0.0.1 to the user table, so after this I can log in as you would expect

GRANT ALL PRIVILEGES ON *.* TO root@localhost IDENTIFIED BY 'root-password' WITH GRANT OPTION;

GRANT ALL PRIVILEGES ON *.* TO root@127.0.0.1 IDENTIFIED BY 'root-password' WITH GRANT OPTION;

// delete anon accounts

DELETE FROM mysql.user WHERE password='';

FLUSH PRIVILEGES;

It works for me

One other way is when you set the initial password for the root user, also set it on 127.0.0.1:

SET PASSWORD FOR root@localhost=PASSWORD('new_password');
SET PASSWORD FOR root@127.0.0.1=PASSWORD('root-password');
FLUSH PRIVILEGES;

Add your own comment.