Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save softbrada/f96ccf8daab2a9d9d9214162f679be75 to your computer and use it in GitHub Desktop.
Save softbrada/f96ccf8daab2a9d9d9214162f679be75 to your computer and use it in GitHub Desktop.
How setting up mysql as localhost and using this outside docker on Mac OS (accessing localhost mysql from docker) - The missing guide

Mysql outside docker under same machine - only for developing purposes

For some circumstances we cannot use mysql inside docker by sharing volume and we need to use mysql outside docker under the same machine, the big question here is: once you use mysql as daemon on MAC OS and we need have access from docker: which is localhost? localhost inside docker or localhost on my own machine? I haven't found any documentation taking about this so far. I hope this help and forget about bridge connections, sharing volumes, link, or another crazy stuff. Enjoy!

  1. Temporally create an mysql root account that allow external connection (a root account with a password).
  2. Verify the range of mysql IP used by the container services (see the example Image1) - try to make a connection from the container.
  3. Modify your docker-compose.yml by including docker.for.mac.localhost as your mysql domain (this is the only way to connect something from the container to your localhost machine on MAC OS).
  4. Delete your mysql root account or modifying this by allowing only the docker connections (Maybe there is a better solution for this.)
update user set host='172.18.0.%' where host='%' and User='root'

or even:

update user set host='172.18.%.%' where host='%' and User='root'
  1. I believe the same procedure is applicable to postgres.
  2. Go to the top of this page and click on the Star button or write a comment on the bottom of the page.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment