172 похожих чатов

Привет. Пару дней назад подымал тему, но как-то не нашлось решения. Есть

два стула контейнера. В одном база mysql, во втором скрипт, который делает бекап через msqldump.
Если запустить скрипт на хосте, то бекап успешно создается. Если скрипт помещается в контейнер, то имеем ошибку
mysqldump: Got error: 2002: "Can't connect to local MySQL server through socket '/run/mysqld/mysqld.sock' (2)" when trying to connect.
Как побороть эту напасть? Явно скрипту в контейнере не хватает каких-то прав, но как их дать я не понимаю((

13 ответов

16 просмотров

Очевидно пробросить сокет в контейнер

что то мешает подключиться по сети к базе?

Lorhammer- Автор вопроса
central hardware
что то мешает подключиться по сети к базе?

та ничего не должно. контейнеры в одном энвайрментею вроде как

А локально он как у тебя отрабатывает? К чему скрипт подключается? Может у тебя локально есть СУБД установленная?

Lorhammer- Автор вопроса
Grek 🇺🇦 G
А локально он как у тебя отрабатывает? К чему скри...

на хосте есть только консольные утилиты. таблицы лежат в контейнере №1 - они успешно бекапятся скриптом с хоста. в dockerfile контейнерa №2 я добавляю RUN apt-get update && apt install -y mariadb-client т.е., если я правильно понимаю, mysqldump должен выполняться без проблем

докер композ файл покажи

Lorhammer- Автор вопроса
Oleg B
докер композ файл покажи

version: '3.9' networks: mysql_net: services: db: image: mysql:5.7 command: --default-authentication-plugin=mysql_native_password volumes: - db_data:/var/lib/mysql environment: MYSQL_ROOT_PASSWORD: 123 MYSQL_DATABASE: test MYSQL_USER: user MYSQL_PASSWORD: 123 ports: - 3306:3306 networks: - mysql_net change_db: build: context: ./tick dockerfile: Dockerfile ports: - 8000:8000 networks: - mysql_net backup_db: volumes: - db_data:/var/lib/mysql build: context: ./backup dockerfile: Dockerfile ports: - 8001:8001 networks: - mysql_net volumes: db_data: {}

Lorhammer
version: '3.9' networks: mysql_net: services: ...

network надо описать глобально и 3306 по идее локально должен быть на хосте доступен, локально мускуля ведь нет? лучше не пробрасывать на хост, достаточно внутри сети иметь доступ, обращаться можно по хосту db а зачем backup_db сервис ? он же ничего не делает и чему там собираться в билде?

Lorhammer- Автор вопроса
Oleg B
network надо описать глобально и 3306 по идее лока...

как раз на backup_db должен выполняться скрипт, для бекапа. а насчет глобального описания можно подробнее?

Lorhammer
как раз на backup_db должен выполняться скрипт, дл...

зайди в консоль контейнера бекап дб и пингани db

Lorhammer- Автор вопроса
Oleg B
зайди в консоль контейнера бекап дб и пингани db

не могу, т.к. этот контейнер не может стартануть с этой ошибкой Enter password: mysqldump: Got error: 2002: "Can't connect to local MySQL server through socket '/run/mysqld/mysqld.sock' (2)" when trying to connect

Похожие вопросы

Обсуждают сегодня

30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
~ 2m21s  nix shell github:nixos/nixpkgs#stack ~  stack ghc -- --version error: … while calling the 'derivationStrict' builtin at /builtin/derivation.nix:...
Rebuild your mind.
6
Карта сайта