Configuration correcte de MySQL pour le fichier Ruby on Rails Database.yml

J’ai cette configuration:

development: adapter: mysql2 encoding: utf8 database: my_db_name username: root password: my_password host: mysql://127.0.0.1:3306 

Et je reçois cette erreur:

 Unknown MySQL server host 'mysql://127.0.0.1:3306' (1) 

Y a-t-il quelque chose d’évident que je ne fais pas correctement?

Vous devez séparer l’hôte du numéro de port. Vous pourriez avoir quelque chose, comme:

 development: adapter: mysql2 encoding: utf8 database: my_db_name username: root password: my_password host: 127.0.0.1 port: 3306 

Vous pouvez aussi faire comme ceci:

 default: &default adapter: mysql2 encoding: utf8 username: root password: host: 127.0.0.1 port: 3306 development: < <: *default database: development_db_name test: <<: *default database: test_db_name production: <<: *default database: production_db_name 

Si vous pouvez avoir un fichier vide config / database.yml, alors définissez la variable ENV [‘DATABASE_URL’], alors ça fonctionnera

 $ cat config/database.yml $ echo $DATABASE_URL mysql://root:my_password@127.0.0.1:3306/my_db_name 

pour Heroku: heroku config: set DATABASE_URL='mysql://root:my_password@host.com/my_db_name'

Si vous avez plusieurs bases de données pour les tests et le développement, cela pourrait vous aider.

 development: adapter: mysql2 encoding: utf8 reconnect: false database: DBNAME pool: 5 username: usr password: paswd shost: localhost test: adapter: mysql2 encoding: utf8 reconnect: false database: DBNAME pool: 5 username: usr password: paswd shost: localhost production: adapter: mysql2 encoding: utf8 reconnect: false database: DBNAME pool: 5 username: usr password: paswd shost: localhost 

Aucune de ces réponses n’a fonctionné pour moi, j’ai trouvé la réponse de Werner Bihl qui a résolu le problème.

Obtenir “Impossible de se connecter au serveur MySQL local via le socket ‘/var/run/mysqld/mysqld.sock'” lors de la configuration de la firebase database mysql pour l’application Ruby on Rails

Utilisez ‘utf8mb4’ comme encodage pour couvrir tous les Unicode (y compris les emojis)

 default: &default adapter: mysql2 encoding: utf8mb4 collation: utf8mb4_bin username: < %= ENV.fetch("MYSQL_USERNAME") %> password: < %= ENV.fetch("MYSQL_PASSWORD") %> host: < %= ENV.fetch("MYSQL_HOST") %> 

( Référence1 ) ( référence2 )