Как подключить локальный mysql (или docker-контейнер mysql) из docker-контейнера grafana?

Я создал grafana с контейнером докеров. И я создал mysql с контейнером докеров. После этого я попытался получить доступ к grafana и добавить контейнер mysql через «источник данных». Однако произошла следующая ошибка. В чем проблема?

db query error: query failed - please inspect Grafana server log for details

[настройка источников данных grafana]

Хост: 10.0.7.35:3306

И я установил адрес привязки в «/etc/mysql/my.cnf» для 0.0.0.0:3306 в контейнере mysql.

Формы c голосовым вводом в React с помощью Speechly
Формы c голосовым вводом в React с помощью Speechly
Пытались ли вы когда-нибудь заполнить веб-форму в области электронной коммерции, которая требует много кликов и выбора? Вас попросят заполнить дату,...
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Будучи разработчиком веб-приложений, легко впасть в заблуждение, считая, что приложение без JavaScript не имеет права на жизнь. Нам становится удобно...
Flatpickr: простой модуль календаря для вашего приложения на React
Flatpickr: простой модуль календаря для вашего приложения на React
Если вы ищете пакет для быстрой интеграции календаря с выбором даты в ваше приложения, то библиотека Flatpickr отлично справится с этой задачей....
В чем разница между Promise и Observable?
В чем разница между Promise и Observable?
Разберитесь в этом вопросе, и вы значительно повысите уровень своей компетенции.
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Клиент для URL-адресов, cURL, позволяет взаимодействовать с множеством различных серверов по множеству различных протоколов с синтаксисом URL.
Четыре эффективных способа центрирования блочных элементов в CSS
Четыре эффективных способа центрирования блочных элементов в CSS
У каждого из нас бывали случаи, когда нам нужно отцентрировать блочный элемент, но мы не знаем, как это сделать. Даже если мы реализуем какой-то...
0
0
20
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете сделать это тремя способами

  1. Вы можете запустить докер с MySQL и открыть 3306 (добавив порт -p 3306:3306 и найти IP-адрес докера и подключиться к этому порту на этом IP-адресе из той же сети.
  2. Откройте порт MySQL, а затем запустите докер приложения с помощью --link name_of_mysql_container:mysql, а затем в докере приложения просто подключитесь к name_of_mysql_container.
  3. Используйте Docker composer для создания docker-composer.yml с содержимым, похожим на:
version: '3.2'
    services:
      app:
          build: .
          image: lap
          environment:
             - DB_HOST=mysql
      mysql:
          image: mysql
          ports:
             - "3306:3306"
          environment:
             - MYSQL_ROOT_PASSWORD=root  

И затем вы можете использовать соединение с базой данных контейнера приложения для хоста с именем «mysql».

Спасибо за ваш ответ. Я просто хочу подключить mysql (контейнер докеров) из grafana (контейнер докеров). Я уже использую "порты: - "3306:3306"", но это не работает. Я добавляю сообщение об ошибке в свой вопрос, пожалуйста, проверьте его еще раз. Спасибо.

SecY 17.05.2022 05:00

Похоже, вы уже используете композитор (поскольку вы написали порты: - 3306 в стиле композитора), поэтому вместо Host : 10.0.7.35:3306 попробуйте использовать Host: name_of_mysql_container вы можете отредактировать исходный пост и предоставить нам полный файл композитора, тогда это будет немного проще. что вы можете сделать, так это войти в докер с графаной и проверить, есть ли подключение (зависит от используемого вами образа, вы можете docker exec -it grafana bash and then mysql -h mysql -u ..

Marek Knappe 17.05.2022 05:04

да, я пытался Host : mysql:3306. но вывод такой же (ошибка). обратите внимание, что я проверяю пинг от контейнера mysql до контейнера grafana, проблем с пингом нет.

SecY 17.05.2022 05:18

Вы можете отметить: telnet mysql 3306 или nc mysql 3306; вы видите, есть ли связь? тогда, если это означает, что проблема с пользователем и паролем, попробуйте команду mysql -h mysql -u .. -p.., чтобы проверить, все ли в порядке. также посмотрите на docker logs grafana, если есть еще ошибка к той, которую вы вставили

Marek Knappe 17.05.2022 05:21

хорошо, я проверил журнал контейнера grafana. я нашел эту ошибку «Ошибка 1130: хосту« grafana »не разрешено подключаться к этому серверу MySQL». Нужно ли устанавливать [базу данных] на grafana.ini?

SecY 17.05.2022 07:26

Это означает, что вы должны добавить нового пользователя: `СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ 'grafana_user'@'grafana', ИДЕНТИФИЦИРОВАННОГО 'somehardpassword'; ПРЕДОСТАВИТЬ ВСЕ НА . 'grafana_user'@'grafana'; Сброс привилегий. Ошибка, которую вы обнаружили, связана с тем, что в вашей пользовательской таблице mysql нет пользователя с хостом «grafana».

Marek Knappe 17.05.2022 08:17

OMG... Мне стыдно за себя за то, что я не смог решить простую ошибку, которую нужно создать только пользователю. Спасибо!!!

SecY 18.05.2022 02:01

Другие вопросы по теме