Проблема:
Вы предоставили права доступа пользователю, подключающемуся из любого места, используя эту команду:
mysql> GRANT ALL PRIVILEGES ON *.* TO prueba@'%' IDENTIFIED BY 'password'
Затем, когда вы пытаетесь получить доступ к серверу mysql, используя:
# mysql -u prueba -ppassword
вы получите следующую ошибку:
ERROR 1045 (28000): Access denied for user 'prueba'@'localhost' (using password: YES)
Проблема в том, что MySQL по умолчанию создает анонимных пользователей, которым предоставляется доступ с локального хоста с более высоким приоритетом (подробнее см. Здесь):
mysql> select User, Host, Password from mysql.user; +---------+-----------+-------------------------------------------+ | User | Host | Password | +---------+-----------+-------------------------------------------+ | root | localhost | | | root | helicon | | | root | 127.0.0.1 | | | root | ::1 | | | | localhost | | | | apollo | | | prueba | % | *AC52124462B6D4C373263062D60ED9CD452E574D | +---------+-----------+-------------------------------------------+ 7 rows in set (0.00 sec)
Решение
Просто удалите анонимные учетные записи, и вы сможете войти в систему с пользователем, который вы ранее определили:
mysql > DROP USER ''@'localhost'; Query OK, 0 rows affected (0.00 sec) mysql > DROP USER ''@'apollo'; Query OK, 0 rows affected (0.00 sec)