Подтвердить что ты не робот

Как открыть мой MySQL на моей малине Pi для внешних/удаленных подключений?

У меня есть малина Pi, в которой хранятся данные о температуре для домашнего пивоварения. Я делаю приложение Spring MVC на своем компьютере, и я хочу использовать данные. И мой Pi, и мой компьютер находятся в локальной сети. Я могу полностью настроить SSH и FTP в свой RPi.

mysql --192.168.1.102 --u root -p db

Вызывает "Не удается подключиться к серверу MySQL на 192.168.1.102".

Мое приложение Java не подключается, очевидно.

SHOW VARIABLES WHERE VARIABLE_NAME = 'port' ;

возвращает порт по умолчанию 3306.

Есть ли параметр, который должен быть включен для разрешения удаленных подключений в MySQL?

4b9b3361

Ответ 1

Недавно у меня была такая же проблема. Я получил его работу, выполнив следующие действия:

Изменить конфигурацию MySQL

По умолчанию MySQL не настроен на прием удаленных подключений. Вы можете включить удаленные подключения, изменив файл конфигурации:

sudo nano /etc/mysql/my.cnf

Найдите раздел [mysqld]. Строка, которую нужно изменить, - bind-address, которая должна быть установлена ​​на значение по умолчанию 127.0.0.1. Вы хотите отредактировать эту строку, чтобы вместо этого отображать IP-адрес вашего RPi в сети (который, кажется, будет 192.168.1.102 из вашего примера). Напишите изменения.

Перезапустить службу MySQL

sudo service mysql restart

Настройка разрешений MySQL

Подключитесь к экземпляру MySQL с правами root:

mysql -p -u root

Создайте пользователя:

CREATE USER '<username>'@'<ip_address>' IDENTIFIED BY '<password>';  
  • Требуются апострофы (') в синтаксисе
  • IP-адрес - это IP-адрес устройства в сети, которую вы пытаетесь подключить, из

Предоставить разрешения для соответствующих баз данных и таблиц:

GRANT ALL PRIVILEGES ON <database>.* TO '<username>'@'<ip_address>' IDENTIFIED BY '<password>';
  • Параметры - это те, которые вы использовали для создания своего пользователя на предыдущем шаге.
  • * предоставит доступ ко всем таблицам в указанной базе данных. В качестве альтернативы вы можете указать конкретную таблицу
  • Вероятно, вы захотите усилить безопасность, предоставив только соответствующие привилегии, но этого должно быть достаточно, чтобы проверить, что он работает.

Это, надеюсь, сделает это!

Ответ 2

Следующее сработало для меня, любезно предоставленный комментарий this:

  • Предоставьте доступ к удаленному компьютеру, используя: GRANT ALL ON *.* TO 'root'@'192.168.1.%' IDENTIFIED BY 'your_password_here'; (я использовал 192.168.1.%, чтобы любой компьютер в моей сети мог подключиться к нему)
  • Перейдите в файл my.cnf(sudo nano /etc/mysql/my.cnf) и найдите "bind-address" и прокомментируйте это (поставьте # перед линией)
  • Обновить конфигурацию MySQL (service mysql reload)
  • Перезапустить сервер MySQL (service mysql restart)

Ответ 3

Если ваша проблема не позволяет удаленно подключаться к MySQL на малине Pi, попробуйте выполнить следующие шаги. У меня была такая же проблема, и я решил ее решить, выполнив команды ниже.

1) sudo nano /etc/mysql/my.cnf

2) # bind-address = 127.0.0.1//прокомментируем эту строку

bind-address = 0.0.0.0          //add this line just below above line 

3) sudo /etc/init.d/mysql restart//перезапустить mysql

4) sudo mysql -u root -p//Войдите в mysql cli как пользователь 'root'

5) GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'beta' WITH GRANT OPTION;

Здесь "root" - пользователь mysql, а "бета" - это пароль, и здесь для "root" установлены привилегии. Измените его соответствующим образом и выполните над запросом в mysql cli.

Удачи!!!