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

Wie verbinde ich eine MySQL-Datenbankdatei mit einer lokalen Ruby on Rails-Anwendung?

Sie können eine Rails-Anwendung nicht direkt mit einer SQL-Datei verbinden. Die Rails-Anwendung bezieht ihre Daten von einem Datenbankserver und Sie importieren den Inhalt der SQL-Datei in eine Datenbank, die vom Server gehostet wird.

Sie können ein DMG-Archiv herunterladen, das MySQL Community Server auf Ihrem Mac von http:// dev.mysql.com/downloads/mysql/#downloads

Dieser Download enthält auch ein praktisches Einstellungsfenster zum Starten und Stoppen des Servers.

Sobald Sie MySQL eingerichtet und ausgeführt haben, sollten Sie ein Passwort für den Root-Benutzer (d. h. den Datenbanksystemadministrator) mit

festlegen
mysqladmin -u root password "secret"

– Ersetzen Sie offensichtlich secret mit dem echten Passwort, das Sie verwenden möchten.

Dann können Sie die database.yml einrichten Datei für die Rails-Anwendung. Für eine Anwendung namens app es würde so aussehen:

development:
  adapter: mysql
  database: app_development
  username: root
  password: secret
  host: localhost

test:
  adapter: mysql
  database: app_test
  username: root
  password: secret
  host: localhost

production:
  adapter: mysql
  database: app_production
  username: root
  password: secret
  host: localhost

Beachten Sie, dass Sie in der Produktion normalerweise ein separates Datenbankbenutzerkonto mit eingeschränkten Rechten für die Rails-Anwendung erstellen würden, um sich mit MySQL zu verbinden, aber für die Entwicklung auf Ihrem lokalen Rechner ist das Root-Konto in Ordnung.

Nach diesem Schritt können Sie rake db:create ausführen aus dem Stammverzeichnis der Rails-Anwendung im Terminal. Dieser Befehl erstellt die app_development Datenbank in MySQL (rake db:create:all erstellt auch die Test- und Produktionsdatenbanken). Schließlich können Sie Ihre SQL-Datei importieren, indem Sie im Terminal den folgenden Befehl eingeben:

mysql -u root -p app_development < path/to/file/name.sql

Sie werden nach dem MySQL-Root-Passwort gefragt. Ersetzen Sie path/to/file mit dem vollständigen Pfad zur SQL-Datei, wenn sie sich nicht im aktuellen Verzeichnis des Terminals befindet. Verwenden Sie beispielsweise ~/Desktop/name.sql wenn es sich auf Ihrem Desktop befindet.