3
C:\Users\dp\Desktop>mysql -u user -pXXXX -h 127.0.0.1 -P 3306
Warning: Using a password on the command line interface can be insecure.
ERROR 1045 (28000): Access denied for user 'mywayuser'@'localhost' (using passwo
rd: YES)

C:\Users\dp\Desktop>mysql -u user -pXXXX -h localhost -P 3306
Warning: Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 14
Server version: 5.6.21-log MySQL Community Server (GPL)

Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> exit

I've already GRANTED ALL PRIVILEGES for 127.0.0.1 .

What am I doing wrong?

ElGavilan
  • 6,610
  • 16
  • 27
  • 36
David Paul
  • 102
  • 5

1 Answers1

4

user@localhost and user@127.0.0.1 are different credentials in MySql. For Mysql the host of localhost is basically "connect via socket, not an IP".

To connect explicity to localhost via socket as you're trying, you need to have an entry specifically for the desired user at localhost in the mysql.user table:

 CREATE USER 'user'@'localhost'  IDENTIFIED BY PASSWORD 'xxxxx';

Even the catch all "%" won't work. You must have a localhost entry if you wish to use it. Then grant privileges to this user.

Or you could connect by using the ip 127.0.0.1 or any other hostname that maps to 127.0.0.1 other than the special host localhost

mysql -u user -pXXXX -h 127.0.0.1 -P 3306

Yep, I would have preferred if mysql didn't treat localhost like this, but there it is...

Ray
  • 40,256
  • 21
  • 101
  • 138