私はこの構成を持っています:
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の場合:heroku config:set DATABASE_URL='mysql://root:[email protected]/my_db_name'
「utf8mb4」をエンコードとして使用して、すべてのUnicode(絵文字を含む)をカバーします
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 )
これらの回答のどれも私のために機能しませんでした、私は問題を解決したWerner Bihlの答えを見つけました。
テストと開発用に複数のデータベースがある場合、これが役立つ場合があります
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