Подготовьте базу данных MySQL или MariaDB.

Подготовьте базу данных MySQL или MariaDB.

Подготовьте базу данных MySQL или MariaDB.

Веб-сервер Интернета вещейВеб-сервер HTTP POST IoTБаза данных MySQL. Веб-сервер Интернета вещейВеб-сервер IoT на языке PHP

Настройте сервер базы данных

После установки набора услуг ЛАМПЫ, WAMP, MAMP o XAMPP Как объяснялось в первой статье серии, или просто после установки на машину, которая будет выступать в качестве сервера, совокупности приложений, реализующих соответствующие службы, необходимо настроить некоторые аспекты конфигурации сервера базы данных. MySQL а также создание баз данных и таблиц, которые будут использоваться на веб-сервере для хранения данных с устройств Интернета вещей.

Если используется общедоступный сервер, провайдер обязательно предоставит некую панель для посредника между пользователем и «реальной» конфигурацией базы данных, чтобы повысить безопасность операции. В этом случае вам придется обратиться к инструкциям, которые предлагает этот провайдер. В случае реального или виртуального сервера, размещенного на объектах третьей стороны, аналогичная ситуация может возникнуть, когда им управляет провайдер; Если был заключен контракт с неуправляемым сервером (поставщиком, управляемым пользователем), будет применяться следующая информация.

Поскольку важно знать инструкции, которые должны быть даны менеджеру базы данных, и понятно, что они используются как средство поддержки устройств Интернета вещей, что и будет целью проекта, это может быть достаточно использовать консоль, поскольку работа на самом сервере базы данных будет эпизодической. Если нагрузка на управление начинает увеличиваться, возможно, стоит, поскольку удобнее использовать менеджер на самом сервере, например популярный PHPMYADMIN (из веб-браузера) или локально, хотя, конечно, с доступом к серверу базы данных, с таким администратором, как MySQL Workbench откуда можно выступать на продвинутом уровне Графический интерфейс пользователя операции, которые будут объяснены, и многие другие, которые выходят за рамки этой статьи и заслуживают целой серии.

Панель администратора MySQL Workbench

В дополнение к более или менее автоматическим операциям, которые можно выполнить с помощью MySQL Workbench на сервере, в базах данных или таблицах также можно выполнять задачи «вручную», записывая и выполняя полные сценарии или независимые команды в SQL. То же, что и с инструментом MySQL Workbench, SQL требует отдельной главы, и которую будет важно знать подробно, когда выполняемая часть веб-работы IoT требует более серьезного внимания к бэкэнда чем описано здесь.

Редактор SQL-запросов MySQL Workbench

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

Настройте root, главного администратора MySQL.

Если сервер базы данных находится на отдельной машине, первое, что нужно сделать, это настроить разрешения администратора службы, чтобы иметь возможность создавать с использованием этих привилегий других пользователей (которые, в свою очередь, могут их иметь) и, если применимо, базы данных и таблицы. в котором хранится информация, необходимая системе Интернета вещей.

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

Для выполнения этих задач вы обычно работаете с консолью. MySQL в качестве администратора. Для доступа к этому режиму используйте команду mysql -u root -p o sudo mysql -u root при первом использовании и при установке пользователь не был настроен root

Настройка пользователя root MySQL из консоли

В заказ mysql -u root -p указано с опцией -u Имя пользователя (root) и с опцией -p (пароль), что ключ необходимо запрашивать при доступе к консоли MySQL. Для возврата в системную консоль вы можете использовать команду quit выйти

Как видно на скриншоте выше, перед выходом из консоли MySQL, чтобы установить привилегии пользователя root была использована команда:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY '1234' WITH GRANT OPTION;
в котором:

  • все привилегии предоставлены GRANT ALL PRIVILEGES
  • во всех таблицах во всех базах данных ON *.*
  • пользователю root доступ с машины, на которой работает сервер MySQL TO 'root'@'localhost'
  • используя 1234 в качестве пароля IDENTIFIED BY '1234'
  • с разрешением авторизовать других пользователей WITH GRANT OPTION

Для удаленного управления базой данных необходимо предоставить привилегии соответствующему пользователю из других мест. В предыдущем примере разрешалось root доступ с машины, на которой работает сервер базы данных (localhost) С 'root'@'localhost', если используется 'root'@'%' Доступ будет разрешен с любой машины.

Если у вас есть права администратора в системе, вы можете повторно установить пароль пользователя. root de MySQL. Для этого необходимо остановить службу (mysql o mysqld, в зависимости от дистрибутива), загрузитесь без ключа, установите новый ключ root и перезапустите его. При доступе без пароля также можно предоставить описанные выше привилегии.

  • остановить службу sudo /etc/init.d/mysql stop
  • запуск MySQL без ключа и разблокировать консоль sudo mysqld_safe --skip-grant-tables &
  • доступ как «root» mysql -u root
  • измените пароль:
    • доступ к базе данных «mysql' USE mysql;
    • назначить в "root» ключ «1234»: UPDATE user SET authentication_string=PASSWORD("1234") WHERE user="root";
    • применить новые привилегии: FLUSH PRIVILEGES;
    • выйти из консоли mysql и вернёмся в систему: quit
  • перезапустить службу sudo /etc/init.d/mysql restart

Настроить удаленный доступ к базе данных

По соображениям безопасности первоначальная конфигурация менеджера базы данных MySQL не разрешает удаленный доступ, для его изменения необходимо редактировать документ конфигурации, обычно my.cnf, который обычно встречается на маршруте /etc/mysql.

Если используется MariaDB, которая теперь является "более свободной" версией MySQLконечно my.cnf будет ссылка на /etc/alternatives/my.cnf который, в свою очередь, загрузит конфигурацию, используя !includedir, из маршрутных документов /etc/mysql/mariadb.conf.d, вероятно, из документа 50-server.cnf

Ресурс, который сервер базы данных использует, чтобы не обрабатывать удаленные запросы, заключается в «прослушивании» только запросов, сделанных из определенного места. IP-адрес которое выражается как значение параметра bind-address (который заменяет классический skip-networking) Когда адрес 127.0.0.1 (localhost) обрабатываются только запросы с локальной машины. Если прокомментировать с # или если значение 0.0.0.0, мы обслуживаем любой адрес. Чтобы разрешить внешний доступ, безопаснее всего указать IP-адрес (который может быть общедоступным или частным) компьютера, с которого к нему осуществляется доступ, обычно что-то вроде bind-address = 192.168.1.74. В вашем случае это оборудование может выступать в качестве тоннель (перенаправление с помощью SSH) или в качестве дорожки (с основные таблицы IP), чтобы не выставлять сервер за пределы контролируемой области сети.

Конфигурация базы данных MySQL путем редактирования файла my.cnf (в и т. д. mysql)

На скриншоте выше вы можете видеть, что он был отредактирован. my.cnf с конфигурацией MySQL используя заказ sudo nano /etc/mysql/my.cnf. В случае работы с MariaDB В обычной конфигурации порядок будет примерно таким: sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf. Как упоминалось выше, как только появится доступ с правами администратора, Графический интерфейс пользователя в качестве MySQL Workbench для регулярного управления базой данных.

Создайте базы данных

После настройки сервера базы данных можно создавать базы данных и таблицы для хранения данных Интернета вещей. Для этого вы можете использовать команды SQL из консоли или из Графический интерфейс пользователя менеджера.

Приказ CREATE DATABASE temperaturas; создает базу данных «температуры», чтобы избежать ошибок, можно использовать форму CREATE DATABASE IF NOT EXISTS base_datos_temperaturas; который создаст базу данных «temperature_database», только если она в настоящее время не существует.

Создайте таблицы

Поскольку в разных базах данных могут быть таблицы с одинаковым именем, вы можете сослаться на одну из них, указав перед ее именем имя базы данных и разделив их точкой, что-то вроде base_datos.tabla Это обозначение можно распространить и на имена полей. base.tabla.campo

Если при работе с таблицей (в данном случае при ее создании) имя базы данных опущено, считается, что используется ссылка на последнюю выбранную. Чтобы явно выбрать конкретный, вы можете использовать команду USE и укажите свое имя USE base_datos_temperaturas;

При создании таблиц в базах данных в этой же операции обычно добавляется информация формирующих их полей (хотя в дальнейшем их также можно изменить).Как и в случае с базой данных, таблица может быть создана только в том случае, если она будет создана. не существует, добавив предложение IF NOT EXISTS или наоборот, обязательно удалите таблицу перед ее созданием, только если она существует, используя DROP TABLE IF EXISTS valor_temperaturas;

Чтобы разрешить имена таблиц или баз данных, которые могут конфликтовать с командами или процедурами, можно использовать знак серьезного ударения, иногда называемый кавычками, для окружения имени во избежание конфликтов или ошибок в командах. SQL.

Определите поля

Поля, которые добавляются при создании таблицы, обозначаются путем заключения их в круглые скобки и указания типа данных, которые они хранят. Типы данных, обычно используемые в базе данных для хранения информации с устройств, подключенных к Интернету вещей, — целые числа (INT o BIGINT) десятичные дроби (DECIMAL, DOUBLE o FLOAT) времени (DATE, TIME, DATETIME o TIMESTAMP) и текст (в основном VARCHAR хотя есть и другие подобные TEXT но они не используются для IoT) После типа данных и в круглых скобках добавляется длина данных и, если применимо, формат или точность.

Добавляя AUTO_INCREMENT Определение поля указывает менеджеру базы данных, что, если не указано иное, при создании новой записи значение последней плюс соответствующее приращение должно быть автоматически сохранено (обычно оно равно 1). Обычно оно включается в поле. поля, которые используются в качестве числовых индексов записей.

Код NOT NULL указывает, что поле в записи не может быть пустым, оно должно хранить какое-то значение.

При использовании DEFAULT При создании поля таблицы указывается MySQL значение поля по умолчанию при условии, что при добавлении новой записи или ее изменении другое значение явно не указывается. Часто используемое значение по умолчанию, в данном случае для мониторинга значений IoT, — CURRENT_TIMESTAMP который позволяет автоматически записывать текущее время в поле при создании новой записи, поэтому данные автоматически идентифицируются по времени.

Чтобы оптимизировать производительность базы данных, в конце определения полей таблицы удобно включить то, которое используется в качестве индекса с предложением PRIMARY KEY (ID) ID — поле, выбранное в качестве индекса.

В конце определения таблицы в качестве значения параметра можно указать ядро ​​базы данных, с помощью которого она управляется. ENGINE с форматом ENGINE=InnoDB; siendo InnoDB выбранный в данном случае двигатель.

Создавайте базы данных, таблицы и настраивайте поля в сеансе SQL.

Код в следующем примере объединяет заказы и шаги, которые необходимо предпринять для создания базы данных с минимальной таблицей.

Создание резервных копий баз данных

После настройки сервера и создания базы данных и ее таблиц все будет готово для хранения информации, полученной узлами Интернета вещей. Хотя в этой серии статей основное внимание не уделяется обслуживанию, существует одна важная административная проблема, которую важно решить: резервное копирование. От большинства менеджеров, в том числе PHPMYADMIN y MySQL Workbench, резервные копии можно создавать и восстанавливать, но их обычно включают в скрипт, который их автоматизирует (вероятно, вместе с конфигурацией и многими другими документами), поэтому использовать инструмент удобнее. MySQLDump, клиент, который обычно является частью обычной установки MySQLили какая-то альтернатива, например Дампер данных MySQL Что включает в себя заказ? mydumper сделать копию и myloader восстановить его

MySQLDump

Формат заказа mysqldump Это очень просто, вам просто нужно указать имя пользователя user, Пароль password и база данных, которую вы хотите скопировать или --all-databases для резервного копирования всех баз данных, как в следующем примере:

mysqldump --opt --user=pelaez --password=1234 --all-databases > copia.sql

В предыдущем примере создается документ copia.sql который содержит заказы SQL (т. е. текст), необходимый для восстановления всех баз данных. При сохранении в текстовом формате копия занимает гораздо больше, чем необходимо, поэтому ее также обычно сжимают для экономии места на устройстве, на котором она хранится.

Резервную копию, созданную с помощью команды примера, можно восстановить, если информация была потеряна из-за ошибки с командой ниже, выполняющей операции. SQL документа copia.sql

mysql --user=pelaez --password=1234 < copia.sql

Дампер данных MySQL

Хотя предыдущих операций было бы достаточно, очень часто используют Дампер данных MySQL, уже почти стандарт по своей производительности, хотя он не является частью базовых инструментов, входящих в комплект поставки. MySQL

Ниже приведены варианты mydumper наиболее употребляемые, которые по логике должны быть написаны как часть одной команды, разделенные пробелами, хотя в данном тексте они разделены на строки для облегчения чтения:

--host polaridad.es «polaridad.es» — имя сервера базы данных.
--port 3306 «3306» — номер порта, который прослушивает сервер (по умолчанию — 3306).
--user pelaez «pelaez» — имя пользователя, с которым осуществляется доступ к базе данных
--password 1234 «1234» — пароль пользователя, с помощью которого осуществляется доступ к базе данных.
--database temperaturas «температура» — это имя базы данных, для которой создается резервная копия.
--no-locks не блокировать базу данных во время копирования (по умолчанию она блокируется)
--build-empty-files также копировать пустые таблицы
--compress-input сжать ввод
--compress сжать вывод (полученную резервную копию)

Чтобы восстановить резервную копию, полученную с помощью mydumper это используется myloader который в основном используется со следующими опциями, которые должны быть включены в том же порядке, разделенном пробелами:

--host polaridad.es «polaridad.es» — имя сервера базы данных.
--port 3306 «3306» — номер порта, который прослушивает сервер (по умолчанию — 3306).
--user pelaez «pelaez» — имя пользователя, с которым осуществляется доступ к базе данных
--password 1234 «1234» — пароль пользователя, с помощью которого осуществляется доступ к базе данных.
--directory=copia_iot «iot_copy» — папка, в которой находится копия, созданная с помощью mydumper
--overwrite-tables перезаписать таблицы, даже если они уже существуют
--verbose 3 «3» — степень информативности процесса (выше, больше сообщений)
-C использовать сжатие потока данных

В следующей (и последней) статье этой серии объясняется как использовать язык программирования PHP для хранения информации, полученной устройствами, подключенными к Интернету вещей, в базах данных о которых говорилось в этом тексте.

Оставить комментарий

Вы могли пропустить