source

Ruby on Rails Database.yml 파일의 MySQL 구성을 수정합니다.

gigabyte 2022. 9. 16. 23:07
반응형

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

모든 유니코드(이모지 포함)를 포함하려면 '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 설정: 설정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

이 질문자 중 아무도 나에게 효과가 없었다. 나는 문제를 해결하는 베르너 비엘의 답을 찾았다.

"/var/run/mysqld/mysqld 소켓을 통해 로컬 MySQL 서버에 연결할 수 없습니다.Ruby on Rails 앱의 mysql 데이터베이스를 설정할 때 sock' 오류가 발생했습니다.

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

반응형