Разное

Локальная база данных mysql: Создание базы данных в MySQL, настройка и удаление таблицы

09.12.2022

Содержание

Локальный сервер, создание таблиц и базы данных MySQL

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

Вам надо просто запустить файл и будет создана база и таблицы внутри неё, а если захотите, то прямо с данными. Это сработает если у вас с есть полные права на создания. Если это ваш сервер, то с этим проблем быть не должно.
Для начала копируем файл install.php и index.php в корень сервера и запускаем install.
Файл index выводит все базы которые есть на сервере. В конце я покажу как удалять базу или таблицы.

Как можно увидеть, я создал базу данных Test, а в ней  таблицу Users.

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

Сначала посмотрим как создаётся база данных и таблица в ней. Я создам базу Test и таблицу Users.
Сначала рассмотрим конфигурационный файл. Здесь мы укажем данные для доступа к серверу.
Имя хостинга, имя пользователя, пароль  и базу. Но так как базы у нас пока нет – это поля пока пропускаем.
Эта строчка отвечает за соединение с базой.

А этот код отвечает за вывод ошибок при соединении с базой.

Теперь рассмотрим инсталляционный файл. В первой строчке мы подключаем конфигурационный файл который отвечает за связь с базой.
Это sql команда которая создаст базу test. Это опять проверка на ошибки.
Если база была создана, то нам надо её указать в строке соединения, помните, мы оставили её пустой.
Теперь всё готово к созданию таблицы. Пока я не буду рассказывать что это за значения. Это мы узнаем позже. Скажу только что в таблице создадим поля

  • ID
  • USERNAME
  • EMAIL
  • USERDATE
  • TIMEIN
  • и GENDER, куда же теперь без пола, а то обвинят в не толерантности.

Так как мы будем использовать русский шрифт, то укажем кодировку UTF8
Ну и как всегда проверка на ошибки.
Советую всегда вставлять эти строчки, так вы всегда узнаете где была ошибка.
Теперь закрываем соединение.

Файл index отвечает за вывод информации. Я его использую для вывода количества баз данных, и чтобы посмотреть названия баз.
Если с количеством всё ясно, и нет вариантов, то вывести названия можно разными способами.
Я использую три способа. Хотя достаточно было бы одного.
Первый способ получает массив и выводит его в цикле в столбик, так как я указал перевод на новую строку.


Второй способ – это получение самих названий из массива.
И третий способ это тот же массив, только без цикла.
Нам был бы достаточен например способ два.

Теперь посмотрим как это работает. Заходим в PHPMYADMIN и смотрим сколько сейчас баз данных. Обновляем экран, чтобы видеть, что всё верно. Сейчас у нас 3 базы.

Заходим на сервер. У нас запускается файл index.
Он выводит.
Первая строчка, показывает, что что мы успешно подключились.
Смотрим количество баз. Их у нас три.
И три варианта вывода названий баз данных.

Теперь набираем в браузере install.php и видим, что подключение к базе прошло успешно, База данных была создана, И таблица USERS тоже была создана.
Открываем index И смотрим, что информация изменилась. Везде где было 3 значения, стало 4.
База Test была успешно создана.
Напоминаю, вы всё это можете сделать только обладая правами полного доступа.

Теперь осталось зайти в PhpMyAdmin и проверить, что всё действительно создалось. И таблица тоже.
Всё верно , база есть, таблица есть.
Теперь разберёмся в структуре таблицы.

Давайте приступим к изучению полей таблицы.
Поле ID.
Это целочисленное поле, имеет длину вывода 11 символов. Но это работает только если задан аттрибут zerofill. И указывает на количество нулей перед знаком. Для чего это вам может пригодиться я не знаю.
ВОТ таблица разных типов значений.     

Поле NULL установлено в значение не NULL -это значит, что поле не может иметь пустое значение, и обязательно должно быть заполнено.

Поле авто инкремент означает, что поле будет постоянно увеличиваться на единицу. И если вы удалите последнее значение, то поле установится в следующее значение, а удалённый номер не будет занят. Будет некая дыра в данных.

Поле username.
Здесь тип переменной varchar 100. Вот здесь цифра 100 как раз отвечает за количество знаков которые будут сохранены в базе. Я указал хранить до 100 символов в имени.

Кодировка UTF8 позволяет хранить символы в различных кодировках. Туда же входит и кириллица. Так же это поле не может быть пустым и обязательно должно быть заполнено.

Поле email ни чем не отличается от username. Ну если только количеством символов. Здесь можно было не указывать UTF8 так как почта всегда на латинице.

Поля userdate и timein. Сохранят дату и время создания записи. А поле gender аналогично имени и почте.

Вот мы и познакомились с некоторыми возможностями значений в полях базы. Теперь осталось научиться сохранять значения и удалять таблицу и базу.

Сначала рассмотрим код сохранения в таблицу.

Для этого подправим код в файле install.php
Добавим туда вот такие строчки.
Это SQL запрос на вставку значений в таблицу.
В запросе мы указываем только те значения которые надо добавить. Например ID, Дату и Время мы не указываем так как они вставятся автоматически.
И как всегда проверка ошибок.

Для проверки нам надо удалить таблицу, а иначе получим ошибку. Ну, или можно закоментировать код создания базы и таблицы.


Я удалю таблицу и снова её создам, только уже с записью об Админе.

Заходим на страницу install и запускаем её. Видим сообщение, что база создана и таблица тоже. Переходим в PhpMyAdmin, что бы посмотреть результат.

Видим, что база была создана, таблица тоже, а в нёй был создан пользователь Админ.
Теперь давайте добавим ещё одного пользователя.
Я закомментирую строчки кода создания базы и таблицы и оставлю только Код создания пользователя.
Изменю имя и почту. И сохраню файл.
Запускаем инсталл и получаем ошибку. Видите как удобно что везде расставлены сообщения об ошибках. Всегда понятно что и где искать. Мне пишут, что я не указал в  какой базе данных искать. Возвращаемся в код и устраняем ошибку. Снова запускаем инсталл и теперь всё хорошо.

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

А у нас осталось ещё одна задача. Научиться удалять таблицу и базу.

Давайте сначала удалим запись в таблице. Посмотрим как это сделать. Для этого создадим отдельный файл и назовём его delete.php

Здесь код ничем кроме 1 строчки не отличается от файла install. Соединение с базой, выбор таблицы.

Проверка на ошибки.
Рассмотрим только запрос на удаление.
Здесь мы указываем что нам надо удалить запись с номером ID равным 2 из таблицы USERS.
Теперь загружаем файл на сервер и запускаем его, набрав в строке delete.php
Видим, что к базе подключились, и запись была удалена. Проверим – это в PhpMyAdmin.  Ну И давайте до кучи, удалим ещё и админа, чтобы таблица была совсем пустая и нам не было жалко её удалять.
Для этого снова заходим в delete и меняем ID с двойки на единицу. Сохраняем и запускаем. Смотрим в PhpMyAdmin и видим, что у нас теперь абсолютно пустая таблица. А зачем она нам тогда нужна, Давайте и её удалим.

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


Как обычно, сохраняем, загружаем, смотрим.
Видим, что теперь у нас база больше не содержит таблиц. Осталось только и её удалить. А вы пока смотрите, напишите в комментариях, нужны ли вам такие подробности, или можно половину отбросить и оставить только суть.
Теперь давайте удалим саму базу. Поступим точно также. Закомментируем ненужное и напишем код удаления базы.

Теперь в проверке ошибок изменим таблицу на базу. Сохраним и запустим файл на сервере.

Мы получили сообщение, что база удалена. Давайте в этом убедимся.

А теперь зайдём на сервер и посмотрим сколько осталось таблиц. Их снова 3. Мы потратили 11 минут, чтобы вернуться к тому с чего начали. Баз как было 3 так и осталось.

Если вам нравятся мои видео, то вы можете помочь в развитии канала став его спонсором. Все ваши вклады пойдут на закупки новых модулей. Вам же за это будут предоставлены дополнительные бонусы, и они довольно интересные.
Вы видите ссылки на видео, которые, я думаю будут вам интересны. Перейдя на любое из этих видео вы узнаете что-то новое, а ещё поможете мне. Ведь любой ваш просмотр — это знак YOUTUBE, что это кому-то интересно и что его надо показывать чаще.
Спасибо.
А пока на этом всё.

Учебник. Создание приложения PHP (Laravel) с помощью Базы данных Azure для MySQL — Гибкий сервер в Службе приложений Azure

  • Статья
  • Чтение занимает 10 мин

Область применения: База данных Azure для MySQL — гибкий сервер

Служба приложений Azure — это высокомасштабируемая служба размещения с самостоятельной установкой исправлений на основе операционной системы Linux. В этом учебнике показано, как создать безопасное приложение PHP в Службе приложений Azure, подключенное к базе данных MySQL (с помощью Базы данных Azure для MySQL — Гибкий сервер). По завершении вы получите приложение Laravel, работающее в Службе приложений Azure в Linux.

В этом руководстве описано следующее:

  • Создание изначально безопасного приложения на основе PHP и MySQL в Azure
  • Настройка секретов подключения к MySQL с помощью параметров приложения
  • Развертывание кода приложения с помощью GitHub Actions
  • Обновление и повторное развертывание приложения
  • Безопасные переносы баз данных
  • Потоковая передача журналов диагностики из Azure.
  • Управление приложением на портале Azure.

Предварительные требования

  • Подписка Azure. Если у вас еще нет подписки Azure, создайте бесплатную учетную запись Azure, прежде чем начинать работу. С помощью бесплатной учетной записи Azure вы можете бесплатно использовать гибкий сервер Базы данных Azure для MySQL в течение 12 месяцев. Дополнительные сведения см. в статье Бесплатное использование гибкого сервера.

Пример приложения

Для работы с этим руководством клонируйте или скачайте пример приложения из репозитория:

git clone https://github.com/Azure-Samples/laravel-tasks.git

Если вы хотите запустить приложение локально, сделайте следующее:

  • В файле ENV настройте параметры базы данных (например, DB_DATABASE, DB_USERNAME и DB_PASSWORD) с помощью параметров в локальной базе данных MySQL. Для запуска этого примера потребуется локальный сервер MySQL.

  • В корне репозитория запустите Laravel с помощью следующих команд:

    composer install
    php artisan migrate
    php artisan key:generate
    php artisan serve
    

1. Создание ресурсов Службы приложений и MySQL

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

  • Имя веб-приложения. Это имя используется в составе DNS-имени вашего веб-приложения в виде https://<app-name>.azurewebsites.net.
  • Среда выполнения для приложения. Здесь следует выбрать версию PHP, которая будет использоваться для приложения.
  • Группа ресурсов для приложения. Группа ресурсов позволяет группировать (в логическом контейнере) все ресурсы Azure, необходимые для приложения.

Войдите на портал Azure и выполните следующие действия, чтобы создать ресурсы Службы приложений Azure.

ИнструкцииСнимок экрана
На портале Azure выполните следующие действия:
  1. Введите «веб-приложение база данных» в строке поиска в верхней части портала Azure.
  2. Выберите элемент с меткой Веб-приложение и база данных под заголовком Marketplace.
Вы также можете перейти напрямую к мастеру создания.
На странице Создание веб-приложения+базы данных заполните форму следующим образом.
  1. Группа ресурсов — выберите Создать и используйте имя msdocs-laravel-mysql-tutorial.

  2. Регион → любой ближайший к вам регион Azure.

  3. Имя — используйте имя msdocs-laravel-mysql-XYZ, где XYZ представляет три произвольных символа. Это имя должно быть уникальным в Azure.

  4. Стек среды выполненияPHP 8.0.

    MySQL — гибкий сервер выбран по умолчанию в качестве ядра СУБД. База данных Azure для MySQL — это полностью управляемая система «база данных как услуга» MySQL в Azure, совместимая с последними выпусками сообщества.

  5. Запишите созданное имя базы данных (<имя-приложения>-database). Он понадобится вам позднее.

  6. Щелкните Review + create (Просмотреть и создать).

После завершения проверки нажмите Создать.
Развертывание занимает несколько минут и создает следующие ресурсы:
  • Группа ресурсов — Контейнер для всех созданных ресурсов.
  • План службы приложений — определяет вычислительные ресурсы для Службы приложений. Создается план Linux на уровне P1v2.
  • Служба приложений — представляет приложение и выполняется в плане службы приложений.
  • Виртуальная сеть — интегрирована с приложением Службы приложений и изолирует внутренний сетевой трафик.
  • Гибкий сервер Базы данных Azure для MySQL — доступен только из виртуальной сети. База данных и пользователь создаются на этом сервере.
  • Частная зона DNS — включает разрешение DNS сервера базы данных MySQL в виртуальной сети.
После завершения развертывания нажмите кнопку Перейти к ресурсу. Вы перейдете непосредственно в приложение Службы приложений.

2. Настройка подключения к базе данных

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

ИнструкцииСнимок экрана
В левом меню на странице Службы приложений выберите Конфигурация.
На странице Конфигурация вкладки Параметры приложения создайте параметр DB_DATABASE:
  1. Щелкните Новый параметр приложения.

  2. В поле Имя введите DB_DATABASE.

  3. В поле Значение введите автоматически созданное имя базы данных из мастера создания, которое имеет вид msdocs-docs-laravel-mysql-XYZ-database.

  4. Нажмите кнопку ОК.

Вернитесь на вкладку «Параметры приложения» и сделайте следующее:
  1. Прокрутите страницу вниз и выберите строку подключения defaultConnection. Она была сформирована мастером создания и содержит необходимые имя пользователя и пароль.

  2. В поле Значение нажмите кнопку Копировать и вставьте значение в текстовый файл для последующего использования. Используется следующий формат (разрывы строк сделаны для ясности):

    Database=mysql;
    Server=<database-server-domain-name>;
    User Id=<username>;
    Password=<password>
    
  3. Нажмите кнопку Отмена.

Создайте указанные ниже дополнительные параметры приложения, выполнив те же действия.
  • DB_HOST: используйте <database-server-domain-name> из скопированной строки подключения в качестве значения.

  • DB_USERNAME: используйте <username> из скопированной строки подключения в качестве значения.

  • DB_PASSWORD: используйте <password> из скопированной строки подключения в качестве значения.

  • MYSQL_ATTR_SSL_CA: используйте /home/site/wwwroot/ssl/DigiCertGlobalRootCA.crt.pem в качестве значения.

    Этот параметр приложения указывает на путь к TLS/SSL-сертификату, необходимому для доступа к серверу MySQL. Для удобства он включен в пример репозитория.

  • APP_DEBUG: используйте true в качестве значения. Это переменная отладки Laravel.

  • APP_KEY: используйте base64:Dsz40HWwbCqnq0oxMsjq7fItmKIeBfCBGORfspaI1Kw= в качестве значения. Это переменная шифрования Laravel.

    Важно!

    Это значение APP_KEY используется здесь для удобства. В рабочих сценариях его необходимо создать специально для конкретного развертывания с помощью командной строки php artisan key:generate --show.

3.

Развертывание примера кода

На этом шаге вы настроите развертывание GitHub с помощью GitHub Actions. Это всего лишь один из множества способов развертывания в Службе приложений, но это также отличный способ обеспечения непрерывной интеграции в процессе развертывания. По умолчанию каждая команда git push из репозитория GitHub запускает действие сборки и развертывания. Вы внесете некоторые изменения в базу кода с помощью Visual Studio Code непосредственно в браузере, а затем позволите GitHub Actions выполнить развертывание автоматически.

ИнструкцииСнимок экрана
В новом окне браузера сделайте следующее:
  1. Войдите в учетную запись GitHub.

  2. Перейдите к https://github.com/Azure-Samples/laravel-tasks.

  3. Нажмите кнопку Вилка.

  4. Нажмите Создать вилку.

На странице GitHub откройте Visual Studio Code в браузере, нажав клавишу . .
В Visual Studio Code в браузере откройте файл config/database.php в обозревателе. В подключении mysql убедитесь, что уже используются параметры приложения, созданные ранее для подключения MySQL (DB_HOST, DB_DATABASE, DB_USERNAME, DB_PASSWORD, MYSQL_ATTR_SSL_CA).
Вернитесь на страницу Службы приложений и в меню слева выберите Центр развертывания.
На странице «Центр развертывания» сделайте следующее:
  1. В поле Источник выберите GitHub. По умолчанию в качестве поставщика сборки выбрано GitHub Actions.

  2. Войдите в свою учетную запись GitHub и следуйте инструкциям по авторизации Azure.

  3. В поле Организация выберите свою учетную запись.

  4. В поле Репозиторий выберите laravel-tasks.

  5. В поле Ветвь выберите main.

  6. В верхнем меню выберите Сохранить.

Служба приложений фиксирует файл рабочего процесса в выбранном репозитории GitHub в каталоге .github/workflows.
На странице «Центр развертывания» сделайте следующее:
  1. Выберите Журналы. Прогон развертывания уже запущен.

  2. В элементе журнала для прогона развертывания выберите Журналы сборки и развертывания.

    Вы перейдете в репозиторий GitHub и увидите, что выполняется действие GitHub. Файл рабочего процесса определяет два отдельных этапа: сборку и развертывание.

Чтобы внести изменения в код, откройте Visual Studio Code в браузере:
  1. Выберите расширение Система управления версиями.

  2. Рядом с измененным файлом, например database.php, выберите + для подготовки изменений.

  3. В текстовом поле введите сообщение о фиксации, например add certificate.

  4. Выберите галочку для фиксации и отправки в GitHub.

Если вы вернетесь на страницу «Центр развертывания», то увидите новую запись журнала, так как запускается другой прогон. Дождитесь завершения прогона. Это занимает около 15 минут.

Совет

Действие GitHub определяется файлом в репозитории GitHub в .github/workflow. Его можно ускорить, настроив этот файл.

4. Создание схемы базы данных

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

ИнструкцииСнимок экрана
На странице Службы приложений сделайте следующее:
  1. В меню слева выберите SSH.

  2. Выберите Перейти.

В браузере открывается сеанс SSH с контейнером Службы приложений. При желании вместо этого можно перейти непосредственно к https://<app-name>.scm.azurewebsites.net/webssh/host.
В терминале SSH сделайте следующее:
  1. С помощью команды CD перейдите в корневой каталог кода приложения:

    cd /home/site/wwwroot
    
  2. Запустите миграции баз данных из корневого каталога приложения.

    php artisan migrate --force
    

    Примечание

    После перезапуска приложения могут сохраняться только изменения в файлах в /home. Изменения за пределами /home не сохраняются.

5. Изменение корня сайта

Жизненный цикл приложения Laravel начинается в каталоге /public. Контейнер PHP 8.0 по умолчанию для Службы приложений использует Nginx, который запускается в корневом каталоге приложения. Чтобы изменить корневой каталог сайта, нужно изменить файл конфигурации Nginx в контейнере PHP 8.0 (/etc/nginx/sites-available/default). Для удобства пример репозитория содержит пользовательский файл конфигурации, который называется default. Как отмечалось ранее, не следует заменять этот файл с помощью оболочки SSH, так как после перезапуска приложения такие изменения будут потеряны.

ИнструкцииСнимок экрана
На странице Службы приложений сделайте следующее:
  1. В меню слева выберите Конфигурация.

  2. Далее щелкните вкладку Общие параметры.

На вкладке «Общие параметры» сделайте следующее:
  1. В поле Команда запуска введите следующую команду: cp /home/site/wwwroot/default /etc/nginx/sites-available/default && service nginx reload.

    Она заменяет файл конфигурации Nginx в контейнере PHP 8. 0 и перезапускает Nginx. Такая конфигурация обеспечивает внесение этого изменения в контейнер при каждом его запуске.

  2. Щелкните Сохранить.

6. Переход в приложение

ИнструкцииСнимок экрана
На странице Службы приложений сделайте следующее:
  1. В меню слева выберите Обзор.

  2. Выберите URL-адрес своего приложения.

    Также можно перейти непосредственно по адресу https://<app-name>.azurewebsites.net.

Добавьте несколько задач в список. Вы запустили управляемое данными приложение PHP в Службе приложений Azure.

7. Потоковая передача журналов диагностики

ИнструкцииСнимок экрана
На странице Службы приложений сделайте следующее:
  1. В меню слева выберите Журналы службы приложений.

  2. Под элементом Ведение журнала приложения выберите Файловая система.

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

Очистка ресурсов

По завершении работы можно удалить все ресурсы из вашей подписки Azure, удалив соответствующую группу ресурсов.

ИнструкцииСнимок экрана
В строке поиска в верхней части портала сделайте следующее:
  1. Введите имя группы ресурсов.

  2. Выберите группу ресурсов.

На странице группы ресурсов выберите команду Удалить группу ресурсов.
  1. Введите имя группы ресурсов для подтверждения удаления.

  2. Щелкните Удалить.

Часто задаваемые вопросы

  • Сколько стоит такая конфигурация?
  • Как подключиться к базе данных MySQL, защищенной виртуальной сетью, с помощью других средств?
  • Как осуществляется разработка локальных приложений с использованием GitHub Actions?
  • Почему развертывание GitHub Actions идет так медленно?
Сколько стоит такая конфигурация?

Цены на создание ресурсов приведены ниже:

  • План службы приложений создается на уровне Premium V2, и его можно масштабировать вверх или вниз. См. цены на Службу приложений.
  • Гибкий сервер MySQL создается на уровне B1ms, и его можно масштабировать вверх или вниз. При использовании бесплатной учетной записи Azure уровень B1ms предоставляется бесплатно в течение 12 месяцев до достижения ежемесячных пределов. См. цены на Базу данных Azure для MySQL.
  • Плата за виртуальную сеть не взимается, если только вы не настроите дополнительные функциональные возможности, такие как пиринг. См. цены на виртуальные сети Azure.
  • За частную зону DNS взимается небольшая плата. См. цены на Azure DNS.
Как подключиться к базе данных MySQL, защищенной виртуальной сетью, с помощью других средств?
  • Для базового доступа из программы командной строки можно запустить mysql из терминала SSH приложения.
  • Чтобы подключиться из средства для настольных систем, например MySQL Workbench, компьютер должен находиться в соответствующей виртуальной сети. Например, это может быть виртуальная машина Azure, подключенная к одной из подсетей, или компьютер в локальной сети с VPN-подключением типа «сеть — сеть» к виртуальной сети Azure.
  • Вы также можете интегрировать Azure Cloud Shell с виртуальной сетью.
Как осуществляется разработка локальных приложений с использованием GitHub Actions?

Возьмем автоматически созданный файл рабочего процесса из Службы приложений в качестве примера, где каждый git push запускает новый прогон сборки и развертывания. Из локального клона репозитория GitHub вы вносите необходимые обновления в GitHub. Пример:

git add .
git commit -m "<some-message>"
git push origin main
Почему развертывание GitHub Actions идет так медленно?

Автоматически созданный файл рабочего процесса из Службы приложений определяет прогон из двух заданий — сначала сборка, потом развертывание. Так как каждое задание выполняется в собственной чистой среде, файл рабочего процесса гарантирует, что задание deploy имеет доступ к файлам из задания build:

  • В конце задания buildотправьте файлы в виде артефактов.
  • В начале задания deploy скачайте эти артефакты.

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

Сводка

В этом руководстве вы узнали, как выполнять следующие задачи:

  • Создание изначально безопасного приложения на основе PHP и MySQL в Azure
  • Настройка секретов подключения к MySQL с помощью параметров приложения
  • Развертывание кода приложения с помощью GitHub Actions
  • Обновление и повторное развертывание приложения
  • Безопасные переносы баз данных
  • Потоковая передача журналов диагностики из Azure.
  • Управление приложением на портале Azure.

Дальнейшие действия

Руководство. Сопоставление настраиваемого DNS-имени с приложением

Управление ресурсами с помощью портала Azure

Управление сервером

Установка локального сервера MySQL. Установка и настройка локального MySQL… | by Iftekher Mamun

Установка и настройка локального сервера MySQL для использования, просто потому, что БД SQLite слишком медленная

Единственное, что я знал о SQL, это просто написание операторов. Учитывая, что большая часть моих практик исходила от hackerrank, у которого уже есть встроенный сервер sql, я особо не задумывался о его настройке самостоятельно. Некоторое время назад я установил базовую базу данных SQLite и подумал, что этого достаточно.

Я понял, как ошибался, когда мне дали набор данных с более чем 24 тысячами строк. В этот момент я понимаю, насколько медленным на самом деле был DB SQLite. Поэтому, пока мое терпение было на исходе, я начал искать SQL-сервер, который можно настроить бесплатно. К сожалению, это тоже было относительно тяжело. Есть так много разных видов. Какой из них подходит для меня? Немного подумав, я остановился на языке SQL, с которым был знаком лучше всего: MySQL. Погуглив и погуглив, я наконец наткнулся на видео, которое помогло мне установить сервер. Вот видео на YouTube для тех, кому интересно: Установка MySQL Workbench. Однако были некоторые проблемы. Хотя в целом видео действительно хорошо сделано и заслуживает похвалы, оно также немного устарело и в нем отсутствует по крайней мере одна важная информация. Временный пароль root. Судя по видео, вам его дадут, но с новейшей загружаемой версией для Mac вам придется создать свой собственный пароль root. Поэтому я подумал просто добавить свой мини-учебник в качестве дополнения к видео для нового установщика.

Первый шаг — перейти на этот веб-сайт MySQL и загрузить последнюю версию для вашего MAC (извините, пользователь Windows, у меня нет опыта в этой области, но она должна быть относительно похожей).

После загрузки выполните установку и введите пароль для входа в систему основного пользователя.

Шаг второй — это большая разница между видео и текущей моделью на момент написания этой статьи. На этапе настройки вас попросят ввести пароль root. Это может быть настолько просто, насколько вы хотите, или что-то более сложное.

Я сделал свой пароль root слишком длинным, но могу легко изменить его позже

Шаг третий снова похож на видео. На данный момент вы можете в значительной степени следить за видео, но в любом случае это письменная версия. Откройте свой терминал, убедитесь, что вы находитесь в разделе PWD, и найдите свой bash_profile. Если вы когда-либо устанавливали что-либо через conda, у вас уже есть файл bash_profile. Используя приведенный ниже код в PWD вашего терминала, откройте свой bash_profile:

 open -t .bash_profile# И затем вставьте следующий код: export PATH=${PATH}:/usr/local/mysql/bin/ 

После этого сохраните и закройте ваш bash, очистите терминал и запустите новый терминал, открыв новую вкладку или новое окно. Затем выполните следующую команду на новом терминале:

 mysql -u root -p 

Шаг четвертый — убедиться, что вы подключены к серверу MySQL в этот момент (просто к вашему сведению, я сначала забыл эту часть) . В противном случае вы получите ошибку. Если они запрашивают пароль в терминале, это пароль, который вы создали ( НЕ ПАРОЛЬ ДЛЯ ВХОДА В ВАШ КОМПЬЮТЕР ). Теперь вы успешно вошли на сервер. Если вы хотите изменить свой пароль MySQL, запустите следующий код:

 mysql$ ALTER USER 'root'@'localhost' ИДЕНТИФИКАЦИЯ 'MyNewPass'; 
# «MyNewPass» — это новый измененный пароль в этом случае # Вы также можете просто запустить это, если вы забыли свой пароль: успешно вошли в систему, вы увидите свои таблицы MySQL

Теперь, когда все настроено, давайте перейдем к установке MySQL Workbench. Ссылка для скачивания находится здесь. После того, как вы пройдете процесс загрузки, обязательно переместите файл в папку приложения, как показано в видео. Он попросит вас ввести пароль вашего идентификатора пользователя, который является вашим основным паролем для входа в компьютер. Если они попросят вас ввести пароль root, то это будет новый пароль, который вы только что создали во время установки.

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

Если вы не видите выделенное синим поле Локальный экземпляр, значит, ваш сервер MySQL не работает.

Если вы не видите маленькое синее поле выше, это означает, что ваш сервер SQL не работает. Чтобы запустить это, щелкните яблоко в левом верхнем углу экрана, затем Системные настройки. И у вас должно появиться такое окно:

Это тоже была разница между видео и мной. Он смог открыть MySQL через настройки, тогда как я просто получаю это

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

Руководство по установке, которому я следовал

Загрузить MySQL Community Server

MySQL Community Edition — это бесплатно загружаемая версия самой популярной в мире базы данных с открытым исходным кодом, которая…

Веб-учетная запись Oracle предоставляет следующие преимущества: Быстрый доступ к загрузкам программного обеспечения MySQL Загрузка…

dev.mysql.com

Базы данных - Mysql | Убунту

MySQL — это быстрый, многопоточный, многопользовательский и надежный сервер базы данных SQL. Он предназначен для критически важных, высоконагруженных производственных систем и программного обеспечения массового развертывания.

Установка

Чтобы установить MySQL, выполните следующую команду из командной строки терминала:

 sudo apt установить mysql-сервер
 

После завершения установки сервер MySQL должен быть запущен автоматически. Вы можете быстро проверить его текущий статус через systemd:

 статус sudo службы mysql
● mysql.service — Сервер сообщества MySQL
   Загружено: загружено (/lib/systemd/system/mysql.service; включено; предустановка поставщика: включена)
   Активно: активно (работает) со вт 08.10.2019 14:37:38 PDT; 2 недели 5 дней назад
 Основной PID: 2028 (mysqld)
    Заданий: 28 (лимит: 4915)
   Группа CG: /system.slice/mysql.service
           └─2028 /usr/sbin/mysqld --daemonize --pid-file=/run/mysqld/mysqld.pid
08 октября, 14:37:36 db.example.org systemd[1]: Запуск MySQL Community Server...
08 октября, 14:37:38 db.example.org systemd[1]: запущен MySQL Community Server.
 

Сетевой статус службы MySQL также можно проверить, выполнив команду ss в командной строке терминала:

 судо сс-тап | grep mysql
 

При выполнении этой команды вы должны увидеть примерно следующее:

 ПРОСЛУШАТЬ 0 151 127.0.0.1:mysql 0.0.0.0:* пользователи:(("mysqld",pid=149190,fd=29))
ПРОСЛУШАТЬ 0 70 *:33060 *:* пользователи:(("mysqld",pid=149190,fd=32))
 

Если сервер работает неправильно, вы можете ввести следующую команду для его запуска:

 перезапуск службы sudo mysql
 

Хорошей отправной точкой для устранения неполадок является журнал systemd, доступ к которому можно получить из командной строки терминала с помощью следующей команды:

 sudo journalctl -u mysql
 

Конфигурация

Вы можете отредактировать файлы в /etc/mysql/ , чтобы настроить основные параметры — файл журнала, номер порта и т. д. Например, чтобы настроить MySQL для прослушивания подключений от сетевых хостов, в файле /etc/mysql/mysql.conf.d/mysqld.cnf измените директиву bind-address на IP-адрес сервера:

 адрес привязки = 192.168.0.5
 

Примечание

Замените 192.168.0.5 на соответствующий адрес, который можно определить через ip address show .

После изменения конфигурации необходимо перезапустить демон MySQL:

 sudo systemctl перезапустить mysql.service
 

Механизмы баз данных

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

MySQL позволяет хранить данные различными способами. Эти методы называются механизмами базы данных или хранилища. Есть два основных движка, которые вас заинтересуют: InnoDB и MyISAM. Механизмы хранения прозрачны для конечного пользователя. На поверхности MySQL будет работать по-разному, но независимо от того, какой механизм хранения используется, вы будете взаимодействовать с базой данных одинаковым образом.

Каждый двигатель имеет свои преимущества и недостатки.

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

  • MyISAM является старшим из двух. При определенных обстоятельствах он может быть быстрее, чем InnoDB, и поддерживает рабочую нагрузку только для чтения. Некоторые веб-приложения были настроены на MyISAM (хотя это не означает, что они будут работать медленнее под InnoDB). MyISAM также поддерживает тип данных FULLTEXT, что позволяет очень быстро выполнять поиск в большом количестве текстовых данных. Однако MyISAM может блокировать только всю таблицу для записи. Это означает, что только один процесс может одновременно обновлять таблицу. Как и любое приложение, использующее масштабы таблицы, это может оказаться помехой. В нем также отсутствует журналирование, что затрудняет восстановление данных после сбоя. По следующей ссылке приведены некоторые рекомендации по использованию MyISAM в производственной базе данных.

  • InnoDB — это более современный механизм базы данных, разработанный с учетом требований ACID, что гарантирует надежную обработку транзакций базы данных. Блокировка записи может происходить на уровне строк в таблице. Это означает, что несколько обновлений могут выполняться в одной таблице одновременно. Кэширование данных также выполняется в памяти в механизме базы данных, что позволяет кэшировать более эффективно на уровне строк, а не на уровне файлов. Для соответствия требованиям ACID все транзакции регистрируются независимо от основных таблиц. Это обеспечивает гораздо более надежное восстановление данных, поскольку можно проверить согласованность данных.

Начиная с MySQL 5.5, InnoDB является движком по умолчанию и настоятельно рекомендуется вместо MyISAM, если только у вас нет особых потребностей в функциях, уникальных для движка.

Расширенная конфигурация

Создание настроенной конфигурации

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

Многие параметры можно настроить с помощью существующей базы данных, однако некоторые из них могут повлиять на структуру данных и поэтому требуют более тщательного применения.

Во-первых, если у вас есть существующие данные, вам нужно будет выполнить mysqldump и перезагрузить:

 mysqldump --all-databases --routines -u root -p > ~/fulldump.sql
 

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

После создания дампа выключите MySQL:

 остановка службы sudo mysql
 

Также рекомендуется сделать резервную копию исходной конфигурации:

 sudo rsync -avz /etc/mysql/root/mysql-backup
 

Затем внесите необходимые изменения в конфигурацию.

Затем удалите и повторно инициализируйте пространство базы данных и убедитесь, что право собственности правильно перед перезапуском MySQL:

 sudo rm -rf /var/lib/mysql/*
sudo mysqld --инициализировать
sudo chown -R mysql: /var/lib/mysql
запуск службы sudo mysql
 

Последним шагом является повторный импорт ваших данных путем передачи команд SQL в базу данных.

 кошка ~/fulldump.sql | mysql
 

При импорте больших объемов данных утилита «Просмотр каналов» может быть полезна для отслеживания хода импорта. Игнорируйте любое время ETA, созданное pv, оно основано на среднем времени, необходимом для обработки каждой строки файла, но скорость вставки может сильно различаться от строки к строке с помощью mysqldumps:

 sudo apt установить pv
pv ~/fulldump.sql | mysql
 

Как только это будет сделано, все готово!

Примечание

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

MySQL-тюнер

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

 sudo apt установить mysqltuner
 

После установки запустите:

 mysqltuner
 

и дождитесь его окончательного отчета. В верхнем разделе представлена ​​общая информация о сервере базы данных, а в нижнем разделе приведены предложения по настройке, которые можно изменить в файле my.cnf. Большинство из них можно изменить прямо на сервере без перезапуска; просмотрите официальную документацию MySQL (ссылка в разделе «Ресурсы»), чтобы узнать, какие переменные нужно изменить в рабочей среде. Следующий пример является частью отчета из производственной базы данных, демонстрирующего потенциальные преимущества увеличения кэша запросов:

 -------- Рекомендации ---------------------------------------- -------------
Общие рекомендации:
    Запустите OPTIMIZE TABLE, чтобы дефрагментировать таблицы для повышения производительности.
    Постепенно увеличивайте table_cache, чтобы избежать ограничений файлового дескриптора. 
Переменные для настройки:
    key_buffer_size (> 1,4 ГБ)
    query_cache_size (> 32M)
    table_cache (> 64)
    innodb_buffer_pool_size (>= 22G)
 

Само собой разумеется, что стратегии оптимизации производительности варьируются от приложения к приложению. Так, например, то, что лучше всего подходит для WordPress, может не подходить для Drupal или Joomla. Производительность может зависеть от типов запросов, использования индексов, эффективности структуры базы данных и так далее. Возможно, вам будет полезно потратить некоторое время на поиск советов по настройке базы данных в зависимости от того, какие приложения вы используете. Достигнув точки уменьшения отдачи от корректировок конфигурации базы данных, обратите внимание на улучшения в самом приложении или инвестируйте в более мощное оборудование и/или масштабирование среды базы данных.

Ресурсы

  • См. домашнюю страницу MySQL для получения дополнительной информации.

  • Полная документация доступна как в интерактивном, так и в автономном форматах на портале разработчиков MySQL

    .

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *