web-dev-qa-db-fra.com

Configuration MySQL correcte pour Ruby sur 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 j'obtiens cette erreur:

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

Y a-t-il quelque chose d'évident que je fais mal?

85
GeekedOut

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
193

Vous pouvez aussi faire comme ça:

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
16
pangpang

Si vous pouvez avoir un fichier config/database.yml vide, définissez la variable ENV ['DATABASE_URL'], cela fonctionnera

$ cat config/database.yml
 
$ echo $DATABASE_URL
mysql://root:[email protected]:3306/my_db_name

pour Heroku: heroku config: set DATABASE_URL='mysql://root:[email protected]/my_db_name'

2
user3118220

Utilisez 'utf8mb4' comme encodage pour couvrir tous les unicodes (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") %>

( Reference1 ) ( Reference2 )

2
botibs
0
t q

Si vous avez plusieurs bases de données à tester et à développer, cela pourrait 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
0
Rick