Я могу подключиться к моей базе данных mysql через командную строку при указании точного IP:
mysql -u root -p -h 172.31.110.55
Я использую AWS, но когда пытаюсь подключиться через DNS, я получаю такую ошибку:
$ mysql -u root -p -h ip-172-31-110-55.us-west-2.compute.internal
ERROR 1045 (28000): Access denied for user 'root'@'ip-172-31-110-55.us-west-2.compute.internal' (using password: YES)
Я дважды проверил, правильно ли набираю пароль
mysql> SHOW GRANTS;
+---------------------------------------------------------------------------------------------------------------------------------------------------------+
| Grants for root@ip-172-31-110-55.us-west-2.compute.internal |
+---------------------------------------------------------------------------------------------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'root'@'ip-172-31-110-55.us-west-2.compute.internal' IDENTIFIED BY PASSWORD '****HASH_OF_PASSWORD****' |
+---------------------------------------------------------------------------------------------------------------------------------------------------------+
в чем может быть проблема? Я считаю, что это причина, по которой я также могу получить ошибку при попытке удаленного доступа к базе данных при использовании phpmyadmin
MySQL said:
#1045 - Access denied for user 'root'@'ip-172-31-110-55.us-west-2.compute.internal' (using password: YES)
мой файл конфигурации phpmyadmin:
/* Remote Server */
$i++;
$cfg['Servers'][$i]['connect_type'] = 'tcp';
$cfg['Servers'][$i]['auth_type'] = 'config';
$cfg['Servers'][$i]['host'] = 'myinstance.123456789012.us-east-1.rds.amazonaws.com';
$cfg['Servers'][$i]['verbose'] = 'Remote Server Name';
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = '**********';
$cfg['Servers'][$i]['hide_db'] = '^(mysql|performance_schema|innodb|information_schema)$';
Я решил проблему с phpmyadmin (это была основная проблема, с которой я столкнулся). Публикация исправления здесь для будущих поколений, потому что это было слишком долго, чтобы оставлять комментарии.
/* Remote Server */
$i++;
$cfg['Servers'][$i]['connect_type'] = 'tcp';
$cfg['Servers'][$i]['auth_type'] = 'cookie';
$cfg['Servers'][$i]['host'] = '172.31.110.55';
$cfg['Servers'][$i]['port'] = '3306';
$cfg['Servers'][$i]['verbose'] = 'Remote Server Name';
$cfg['Servers'][$i]['hide_db'] = '^(mysql|performance_schema|innodb|information_schema)$';
Я также сделал "mysqladmin -u root password 'newpassword'", не знаю, имеет ли это какое-либо отношение к этому.
Проблема с командной строкой все еще существует. Если у кого-нибудь есть подсказка, я буду рад проверить дальше.