Mysql
 sql >> база данни >  >> RDS >> Mysql

1130 Хостът 'amazon-ec2-ip' няма право да се свързва с този MySQL сървър

След като публикувах този проблем, докато работех, разбрах, че дори не мога да пингувам към сървъра EC2 или telnet към него. Така че нещо основно трябваше да не е наред. Най-накрая един приятел ми помогна с проблема. Както очаквах, проблемът беше много специфичен за EC2.

Подробностите са както следва:

Когато създадем EC2 екземпляр, получаваме външен IP адрес, който е подобен на:ec2-XX-XXX-XXX-XX.ap-southeast-1.compute.amazonaws.com

Докато задавах разрешенията в mysql, давах разрешенията на горния IP адрес, т.е.:

GRANT ALL PRIVILEGES on . to [email protected]'ec2-XX-XXX-XXX-XX.ap-southeast1.compute.amazonaws.com' IDENTIFIED BY 'password';

Това не работи, когато се опитате да комуникирате с EC2 екземпляр от друг локален EC2 екземпляр. За това трябва да предоставите „вътрешния ip адрес“ на екземпляра EC2, който може да бъде намерен с помощта на командата ip:

ip a:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN 
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host 
valid_lft forever preferred_lft forever

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 12:31:41:02:58:47 brd ff:ff:ff:ff:ff:ff
inet **XX.XX.XX.XXX/23** brd YY.YYY.YY.YYY scope global eth0
inet6 fe80::1031:41ff:fe02:5847/64 scope link 
valid_lft forever preferred_lft forever

За да накарате нещата да работят правилно, трябва да дадете разрешение на ip адреса --"XX.XXX.XX.XXX/23" и той трябва да работи. По същия начин, докато се свързвате към базата данни "mysql", името на хоста, предоставено на командата mysql, трябва също да бъде "вътрешен ip адрес" на екземпляра на хоста EC2.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL:ГРЕШКА 1215 (HY000):Не може да се добави ограничение за външен ключ

  2. Laravel | Уникална клауза за валидиране където

  3. MYSQL заявка / дати по-стари от преди 1 седмица (всички дати и времена в UTC)

  4. Как да отстраня грешки в MySQL/Doctrine2 заявки?

  5. SQLSTATE[HY000] [2002] php_network_getaddresses:getaddrinfo неуспешно:предоставено име на възел или име на сървър или неизвестно