2013-09-11 6 views
18

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

mysql --192.168.1.102 --u root -p db 

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

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

SHOW VARIABLES WHERE VARIABLE_NAME = 'port' ; 

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

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

ответ

28

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

Редактировать конфигурацию 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 как корень:

mysql -p -u root 

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

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

разрешений Grant в соответствующие базы данных и столы:

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

Что следует надеяться сделать это!

+0

Спасибо, сэр !! –

+2

Какая миссия, ха-ха – Ortund

+1

Почему весь переполнение стека заполняется ерундой, когда недооцененный ответ прямо здесь? – Havnar

3

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

  1. Гранта на удаленную машину с помощью: GRANT ALL ON *.* TO 'root'@'192.168.1.%' IDENTIFIED BY 'your_password_here'; (я использовал 192.168.1%, так что любой компьютер в моей сети может. подключиться к нему)
  2. Перейти в) файл my.cnf файл (sudo nano /etc/mysql/my.cnf и искать «связывать-адрес» и закомментируйте (поставить # в передней линии)
  3. Reload MySQL конфигурации (service mysql reload)
  4. Перезапустить MySQL se rver (service mysql restart)
2

Если ваша проблема не позволяет удаленно подключаться к 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 кли как пользователь ' корень '

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

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

Удачи !!!