Локальный сервер, создание таблиц и базы данных MySQL
Сегодня я покажу как создавать базу данных и таблицы с помощью инсталляционного файла. Мы уже не раз создавали базы и таблицы, но делали это из PhpMyAdmin. Но давайте подумаем, что вам надо развернуть сайт на другом компьютере или у заказчика. Вот для этого нам и понадобится инсталляционный файл.
Вам надо просто запустить файл и будет создана база и таблицы внутри неё, а если захотите, то прямо с данными. Это сработает если у вас с есть полные права на создания. Если это ваш сервер, то с этим проблем быть не должно.
Для начала копируем файл install.php и index.php в корень сервера и запускаем install.
Файл index выводит все базы которые есть на сервере. В конце я покажу как удалять базу или таблицы.
В следующем уроке мы научимся делать форму для ввода логина и пароля, и переход на определённую страницу на сайте. Для Админа будет переход на Админскую страницу, а для всех остальных зарегистрированных пользователей на пользовательскую страницу с графиками температуры. Сделанную в прошлом видео.
Сначала посмотрим как создаётся база данных и таблица в ней. Я создам базу Test и таблицу Users.
Сначала рассмотрим конфигурационный файл. Здесь мы укажем данные для доступа к серверу.
Имя хостинга, имя пользователя, пароль и базу. Но так как базы у нас пока нет – это поля пока пропускаем.
Эта строчка отвечает за соединение с базой.
Теперь рассмотрим инсталляционный файл. В первой строчке мы подключаем конфигурационный файл который отвечает за связь с базой.
Это sql команда которая создаст базу test. Это опять проверка на ошибки.
Если база была создана, то нам надо её указать в строке соединения, помните, мы оставили её пустой.
Теперь всё готово к созданию таблицы. Пока я не буду рассказывать что это за значения. Это мы узнаем позже. Скажу только что в таблице создадим поля
- ID
- USERNAME
- 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 символов в имени.
Поле 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 выполните следующие действия:
| |
На странице Создание веб-приложения+базы данных заполните форму следующим образом.
| |
Развертывание занимает несколько минут и создает следующие ресурсы:
|
2. Настройка подключения к базе данных
Мастер создания создал строку подключения к базе данных, но не в том формате, который подходит для вашего кода. На этом шаге вы создадите параметры приложения с нужным форматом.
Инструкции | Снимок экрана |
---|---|
В левом меню на странице Службы приложений выберите Конфигурация. | |
На странице Конфигурация вкладки Параметры приложения создайте параметр DB_DATABASE :
| |
Вернитесь на вкладку «Параметры приложения» и сделайте следующее:
| |
Создайте указанные ниже дополнительные параметры приложения, выполнив те же действия.
|
3.
Развертывание примера кодаНа этом шаге вы настроите развертывание GitHub с помощью GitHub Actions. Это всего лишь один из множества способов развертывания в Службе приложений, но это также отличный способ обеспечения непрерывной интеграции в процессе развертывания. По умолчанию каждая команда git push
из репозитория GitHub запускает действие сборки и развертывания. Вы внесете некоторые изменения в базу кода с помощью Visual Studio Code непосредственно в браузере, а затем позволите GitHub Actions выполнить развертывание автоматически.
Инструкции | Снимок экрана |
---|---|
В новом окне браузера сделайте следующее:
| |
На странице GitHub откройте Visual Studio Code в браузере, нажав клавишу . . | |
В Visual Studio Code в браузере откройте файл config/database.php в обозревателе. В подключении mysql убедитесь, что уже используются параметры приложения, созданные ранее для подключения MySQL (DB_HOST , DB_DATABASE , DB_USERNAME , DB_PASSWORD , MYSQL_ATTR_SSL_CA ). | |
Вернитесь на страницу Службы приложений и в меню слева выберите Центр развертывания. | |
На странице «Центр развертывания» сделайте следующее:
.github/workflows . | |
На странице «Центр развертывания» сделайте следующее:
| |
Чтобы внести изменения в код, откройте Visual Studio Code в браузере:
Совет Действие GitHub определяется файлом в репозитории GitHub в .github/workflow. Его можно ускорить, настроив этот файл. |
4. Создание схемы базы данных
Мастер создания помещает сервер базы данных MySQL за частной конечной точкой, поэтому он доступен только из виртуальной сети. Так как приложение Службы приложений уже интегрировано с виртуальной сетью, выполнять миграции баз данных с вашей базой данных проще всего непосредственно из контейнера Службы приложений.
Инструкции | Снимок экрана |
---|---|
На странице Службы приложений сделайте следующее:
https://<app-name>.scm.azurewebsites.net/webssh/host . | |
В терминале SSH сделайте следующее:
|
5. Изменение корня сайта
Жизненный цикл приложения Laravel начинается в каталоге /public. Контейнер PHP 8.0 по умолчанию для Службы приложений использует Nginx, который запускается в корневом каталоге приложения. Чтобы изменить корневой каталог сайта, нужно изменить файл конфигурации Nginx в контейнере PHP 8.0 (/etc/nginx/sites-available/default). Для удобства пример репозитория содержит пользовательский файл конфигурации, который называется default. Как отмечалось ранее, не следует заменять этот файл с помощью оболочки SSH, так как после перезапуска приложения такие изменения будут потеряны.
Инструкции | Снимок экрана |
---|---|
На странице Службы приложений сделайте следующее:
| |
На вкладке «Общие параметры» сделайте следующее:
|
6. Переход в приложение
Инструкции | Снимок экрана |
---|---|
На странице Службы приложений сделайте следующее:
| |
Добавьте несколько задач в список. Вы запустили управляемое данными приложение PHP в Службе приложений Azure. |
7. Потоковая передача журналов диагностики
Инструкции | Снимок экрана |
---|---|
На странице Службы приложений сделайте следующее:
| |
В меню слева щелкните Поток журналов. Вы увидите журналы для своего приложения, включая журналы платформы и журналы из контейнера. |
Очистка ресурсов
По завершении работы можно удалить все ресурсы из вашей подписки Azure, удалив соответствующую группу ресурсов.
Инструкции | Снимок экрана |
---|---|
В строке поиска в верхней части портала сделайте следующее:
| |
На странице группы ресурсов выберите команду Удалить группу ресурсов. | |
|
Часто задаваемые вопросы
- Сколько стоит такая конфигурация?
- Как подключиться к базе данных 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
.