У меня такая конфигурация:
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)
Есть ли что-то очевидное, что я делаю неправильно?
mysql
ruby-on-rails
ruby
yaml
GeekedOut
источник
источник
host: localhost
root
в качестве пользователя производственной базы данных обычно считается плохой практикой . Чтобы настроить выделенного пользователя для вашего приложения rails, см. Документацию MySQL о создании пользователей .database.yml
. Вместо этого, делать то , что делали user3118220 и получить его из среды:password: ENV['MY_RAILS_APP_DB_PASSWORD']
.Вы также можете сделать так:
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
источник
Используйте 'utf8mb4' в качестве кодировки, чтобы охватить весь юникод (включая смайлики)
default: &default adapter: mysql2 encoding: utf8mb4 collation: utf8mb4_bin username: <%= ENV.fetch("MYSQL_USERNAME") %> password: <%= ENV.fetch("MYSQL_PASSWORD") %> host: <%= ENV.fetch("MYSQL_HOST") %>
( Ссылка1 ) ( Ссылка2 )
источник
Если у вас может быть пустой файл config / database.yml, тогда определите переменную ENV ['DATABASE_URL'], тогда она будет работать
$ cat config/database.yml $ echo $DATABASE_URL mysql://root:my_password@127.0.0.1:3306/my_db_name
для Heroku: heroku config: set
DATABASE_URL='mysql://root:my_password@host.com/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
источник
shost
отличаетсяhost
?Ни один из этих ответов у меня не помог, я нашел Вернера Биля ответ проблему.
Получение ошибки «Не удается подключиться к локальному серверу MySQL через сокет '/var/run/mysqld/mysqld.sock'» при настройке базы данных mysql для приложения Ruby on Rails
источник