developer tip

Ruby on Rails Database.yml 파일의 MySQL 구성 수정

copycodes 2020. 9. 11. 08:10
반응형

Ruby on Rails Database.yml 파일의 MySQL 구성 수정


이 구성이 있습니다.

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: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'


모든 유니 코드 (이모 지 포함)를 포함하는 인코딩으로 '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 )


테스트 및 개발을위한 여러 데이터베이스가있는 경우 도움이 될 수 있습니다.

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 의 답변을 찾았습니다 .

Getting "Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock'" error when setting up mysql database for Ruby on Rails app

참고URL : https://stackoverflow.com/questions/5872264/correct-mysql-configuration-for-ruby-on-rails-database-yml-file

반응형