Я обновился с Elixir 1.8.2 -> 1.9.0. MySQL теперь отклоняет соединение с ошибкой: Aborted connection 7 to db: 'some-api' user: 'some_user' host: '172.28.0.5' (Got an error reading communication packets)
Это приложение работает в docker-compose
и отлично работает на Elixir 1.8.2.
При запуске базы данных с docker-compose
, затем при запуске приложения Elixir с MYSQL_HOST=localhost iex -S mix phx.server
приложение работает нормально, что позволяет мне полагать, что эта проблема больше связана с Docker, чем с Elixir
Я попытался поднять переменную MySQL max_packet_allowed
в [mysql], [client], [mysqld]
разделах конфигурации, но безрезультатно.
docker-compose.json
:
{
"version": "3",
"services": {
"some-api": {
"build": {
"args": [
"MYSQL_HOST=some_mysql"
],
"context": "./../some-api"
},
"container_name": "some-api",
"depends_on": [
"some_mysql",
],
"networks": [
"somenetwork"
],
"ports": [
"4000:4000"
],
"volumes": [
"./../some-api:/code/some-api",
"/code/some-api/deps"
]
},
"some_mysql": {
"container_name": "some_mysql",
"environment": {
"MYSQL_ROOT_PASSWORD": "password"
},
"image": "mysql:5.7",
"networks": [
"somenetwork"
],
"ports": [
"3306:3306"
],
"volumes": [
"./services/mysql/db:/var/lib/mysql",
"./services/mysql/config:/etc/mysql/conf.d"
]
},
}
}
Конфигурация эликсира:
config :some_repo, SomeRepo.Repo,
database: "some-api",
username: "some_user",
password: "some_pass",
hostname: "some_mysql",
port: 3306