I am trying to connect mysql database. Here I am using two docker container one for mysql and one for rails. I am using this docker compose file:
version: '3'
services:
db:
image: mysql:5.7
restart: always
environment:
MYSQL_ROOT_PASSWORD: password
volumes:
- ./mydata:/var/lib/mysql
ports:
- "3307:3306"
web:
build: .
command: bundle exec rails s -p 3000 -b '0.0.0.0'
volumes:
- .:/myapp
ports:
- "3000:3000"
When I am running docker compose up and I can see my containers are running my docker ps command show me:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d1bc75bbb4f7 mysql "docker-entrypoint.s…" 22 seconds ago Up 19 seconds 0.0.0.0:3307->3306/tcp aaupf_db_1
2ccb0882c390 aaupf_web "bundle exec rails s…" 12 minutes ago Up 9 minutes 0.0.0.0:3000->3000/tcp aaupf_web_1
I am using this code in my database.yml:
development:
adapter: mysql2
encoding: utf8
reconnect: false
database: sample_sqlite3_development
pool: 5
username: root
password: password
host: 127.0.0.1
port: 3307
But I am getting this error in rails:
Can't connect to MySQL server on '127.0.0.1' (111 "Connection refused")
I can connect mysql using mysql workbench I don't know what do I need to do in order to connect my rails app to mysql.