Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MySQL stellt keine Verbindung auf EC2 her, das mit Rubber bereitgestellt wird

Wenn jemand anderes dieses Problem hat, liegt es daran, dass mysql jetzt anonyme Standardbenutzer mit eingeschränktem Zugriff hinzugefügt hat.

Das Problem wird hier diskutiert .

Die erste Lösung dort ist nicht umfassend genug, Sie brauchen die am Ende, die alle anonymen Benutzer löscht (nicht nur localhost). Dies liegt daran, dass sich MYSQL auf HOST vor dem BENUTZER authentifiziert, sodass ein anonymer Benutzer ''@'your.host.com' Vorrang vor 'dbuser'@'your.host.com' hat (dokumentiert in Mysql-Dokumentation ) und Rubber versucht, sich mit dem vollständigen Hostnamen zu verbinden.

Bearbeiten Sie Ihre ./config/rubber/deploy-mysql.yml:

rubber.sudo_script "create_master_db", <<-ENDSCRIPT
  mysql -u root -e "create database #{env.db_name};"
  mysql -u root -e "delete from mysql.user where user='';"   <<-- ADD THIS LINE
  ...
ENDSCRIPT