Я пытаюсь использовать MySQL на Docker (вместо Homebrew) для проекта Rails. Это потому, что мне нужны разные версии MySQL для каждого проекта, и переключать версии с помощью brew очень сложно. Однако у меня возникают проблемы с указанием Rails на сервер MySQL на Docker.
Я запустил контейнер Docker следующим образом (5.6
- это нужная мне версия):
docker run -p 3306:3306 --name project-db -e MYSQL_ROOT_PASSWORD=mysql_pw -d mysql:5.6
Контейнер работает нормально, потому что
docker ps
говорит мне, что он работает - Я могу подключиться к нему через
mysql -u root -p -h 127.0.0.1
Но я не могу заставить Rails создать свою БД в Docker; Выполнение rails db:setup
создает базу данных в локально установленном MySQL.
Я попытался удалить MySQL локально с помощью brew uninstall mysql
, думая, что, возможно, он каким-то образом перекрывает Docker. Но затем попытка настроить БД приводит к этой ошибке:
Mysql2::Error: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
Я не очень знаком с Docker, поэтому я, вероятно, что-то неправильно понимаю. Я гуглил, но большая часть информации, которую я смог найти, касалась Dockerization всего проекта Rails, включая MySQL, что я не пытался сделать.
Спасибо за любой совет заранее!