Ответ 1
Вы должны отделить хост от номера порта. У вас может быть что-то вроде:
development:
adapter: mysql2
encoding: utf8
database: my_db_name
username: root
password: my_password
host: 127.0.0.1
port: 3306
У меня есть эта конфигурация:
development:
adapter: mysql2
encoding: utf8
database: my_db_name
username: root
password: my_password
host: mysql://127.0.0.1:3306
И я получаю эту ошибку:
Unknown MySQL server host 'mysql://127.0.0.1:3306' (1)
Есть ли что-то очевидное, что я делаю неправильно?
Вы должны отделить хост от номера порта. У вас может быть что-то вроде:
development:
adapter: mysql2
encoding: utf8
database: my_db_name
username: root
password: my_password
host: 127.0.0.1
port: 3306
Вы также можете сделать следующее:
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
Если у вас может быть пустой файл config/database.yml, тогда определите переменную ENV ['DATABASE_URL'], тогда она будет работать
$ cat config/database.yml
$ echo $DATABASE_URL
mysql://root:[email protected]:3306/my_db_name
для Героку:
heroku config: set DATABASE_URL='mysql://root:[email protected]/my_db_name'
Если у вас несколько баз данных для тестирования и разработки, это может помочь
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
Ни один из этих андронов не работал у меня, я нашел ответ Werner Bihl, который исправил проблему.