Mam taką konfigurację:
development:
adapter: mysql2
encoding: utf8
database: my_db_name
username: root
password: my_password
host: mysql://127.0.0.1:3306
Otrzymuję ten błąd:
Unknown MySQL server host 'mysql://127.0.0.1:3306' (1)
Czy jest coś oczywistego, co robię nieprawidłowo?
mysql
ruby-on-rails
ruby
yaml
GeekedOut
źródło
źródło
host: localhost
root
jako użytkownik produkcyjnej bazy danych jest ogólnie uważane za złą praktykę . Aby skonfigurować dedykowanego użytkownika dla aplikacji railsowej, zapoznaj się z dokumentacją MySQL dotyczącą tworzenia użytkowników .database.yml
. Zamiast robić to, co zrobił user3118220 i dostać go od środowiska:password: ENV['MY_RAILS_APP_DB_PASSWORD']
.Możesz też zrobić w ten sposób:
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
źródło
Użyj „utf8mb4” jako kodowania, aby objąć wszystkie Unicode (w tym emoji)
default: &default adapter: mysql2 encoding: utf8mb4 collation: utf8mb4_bin username: <%= ENV.fetch("MYSQL_USERNAME") %> password: <%= ENV.fetch("MYSQL_PASSWORD") %> host: <%= ENV.fetch("MYSQL_HOST") %>
( Referencja1 ) ( Referencja2 )
źródło
Jeśli możesz mieć pusty plik config / database.yml to zdefiniuj zmienną ENV ['DATABASE_URL'], to zadziała
$ cat config/database.yml $ echo $DATABASE_URL mysql://root:[email protected]:3306/my_db_name
dla Heroku: heroku config: set
DATABASE_URL='mysql://root:[email protected]/my_db_name'
źródło
Może to pomóc, jeśli masz wiele baz danych do testowania i programowania
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
źródło
shost
różni się odhost
?Żadna z tych odpowiedzi nie pomogła, znalazłem odpowiedź Wernera Bihla, która rozwiązała problem.
Pojawia się błąd „Nie można połączyć się z lokalnym serwerem MySQL przez gniazdo '/var/run/mysqld/mysqld.sock'” podczas konfigurowania bazy danych mysql dla aplikacji Ruby on Rails
źródło