sql >> Database >  >> RDS >> Mysql

Hoe verbind ik een mysql-databasebestand met een lokale ruby ​​on rails-toepassing?

U kunt een Rails-toepassing niet rechtstreeks koppelen aan een SQL-bestand. De Rails-applicatie haalt zijn gegevens van een databaseserver en u importeert de inhoud van het SQL-bestand in een database die door de server wordt gehost.

U kunt een DMG-archief downloaden waarmee MySQL Community Server op uw Mac wordt geïnstalleerd vanaf http:// dev.mysql.com/downloads/mysql/#downloads

Die download bevat ook een handig voorkeurenpaneel voor het starten en stoppen van de server.

Als MySQL eenmaal actief is, moet u een wachtwoord instellen voor de rootgebruiker (d.w.z. de databasesysteembeheerder) met

mysqladmin -u root password "secret"

—Vervang duidelijk secret met het echte wachtwoord dat u wilt gebruiken.

Vervolgens kunt u de database.yml . instellen bestand voor de Rails-toepassing. Voor een applicatie met de naam app het zou er zo uitzien:

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

Houd er rekening mee dat u in productie normaal gesproken een apart databasegebruikersaccount met beperkte bevoegdheden zou maken voor de Rails-toepassing om verbinding mee te maken met MySQL, maar voor ontwikkeling op uw lokale machine is het root-account prima.

Na deze stap kunt u rake db:create . uitvoeren vanuit de root van de Rails-applicatie in de Terminal. Deze opdracht maakt de app_development database in MySQL (rake db:create:all maakt ook de test- en productiedatabases). Ten slotte kunt u uw SQL-bestand importeren door de volgende opdracht in de Terminal in te voeren:

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

U wordt gevraagd om het MySQL-rootwachtwoord. Vervang path/to/file met het volledige pad naar het SQL-bestand als het zich niet in de huidige directory van de Terminal bevindt. Gebruik bijvoorbeeld ~/Desktop/name.sql als het op uw bureaublad staat.



  1. Interviewvragen voor data-ingenieurs met Python

  2. Orde handhaven in MySQL IN-query

  3. Kan geen verbinding maken met MySQL op Mac -- mysql.sock-bestand ontbreekt

  4. Hoe genereer je een dynamische sequentietabel in MySQL?