J'ai une instance EC2 avec mon code Rails, et j'essaie de la configurer pour parler à Amazon RDS, mais j'obtiens une erreur lorsque j'essaie de démarrer le serveur rails que je ne sais pas comment corriger:Configuration de Rails sur EC2 et RDS
/opt/bitnami/ruby/lib/ruby/gems/1.9.1/gems/mysql2-0.3.11/lib/mysql2/client.rb:44:in `connect': Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) (Mysql2::Error)
Dans mon dossier database.yml, j'ai ceci:
development:
adapter: mysql2
encoding: utf8
reconnect: false
database: development
pool: 5
username: root
password: secret
host: localhost
production:
adapter: mysql2
encoding: utf8
database: mydbname
username: myusername
password: mypassword
host: mypublicdnsformydb
port: 3306
J'assigné l'instance RDS au même groupe de sécurité que mon EC2 qui a :
22 (SSH) 0.0.0.0/0
80 (HTTP) 0.0.0.0/0
443 (HTTPS) 0.0.0.0/0
Lorsque j'ajoute le CIDR de mon PC, je peux très bien me connecter à l'instance, donc je suis sûr que mon nom d'utilisateur, mon mot de passe et mon hôte sont corrects.
Est-ce que vous essayez de vous connecter à l'aide de RDS 'mysql -u -p -h '? Pouvez-vous l'essayer et poster une sortie d'erreur le cas échéant? Aussi, à partir de votre groupe de sécurité, je ne vois aucune règle qui parle d'ouvrir le port MySQL 3306 sur votre instance RDS. Cela pourrait aussi être un drapeau. –
rhetonik
Voulez-vous dire exécuter cette commande depuis EC2? Le port semble ouvert car je peux me connecter à l'instance RDS depuis mon PC. – yellowreign
Oui, la commande doit être exécutée à partir de votre instance EC2. Votre groupe de sécurité RDS indique que l'instance dispose d'un accès SSH, HTTP et HTTPS, mais qu'elle ne fournit pas d'accès MySQL. En vous connectant depuis votre PC local vers l'instance RDS, avez-vous voulu dire connexion SSH ou connexion MySQL? – rhetonik