Работа с базой данных mysql
Домен и хостинг
Сегодня мы поговорим о работе с базой данных mysql, на примере хостинга Бегет.
Что такое MySQL
MySQL — это система управления базами данных от корпорация Oracle, под GNU General Public License. Входит в состав серверов AppServ, WAMP, LAMP и в портабельных сборок серверов XAMPP, Денвер. Гибкость MySQL обеспечивается за счет поддержки большого количества типов таблиц: MyISAM, InnoDB, EXAMPLE и другие. В связи с этим большинство разработчиков cms используют именно MySQL и у многих начинающих веб-мастеров на первых этапах сайтостроения, возникает вопрос о том, как создать базу данных.
Создание MySQL базы данных и пользователя к ней на примере хостинга Бегет
Если у вас еще нет хостинга, то рекомендую выбрать именно бегет, о нем я рассказывал в статье: «Выбор хостинга | покупка хостинга«.
Для того чтобы создать базу данных, вам необходимо зайти в панель управления хостингом, для этого вам нужно перейти по адресу: cp.beget.ru и в открывшейся странице ввести логин и пароль. После этого нажимаем на вкладку “MySQL”

и попадаем на страницу “Управление базами данных MySQL”,

на данной странице заполняем Имя базы и пользователя и Пароль к базе (администратор для БД создается автоматически — у него будет тоже имя что у БД и тотже пароль) ну вот в принципе и все)
Внимание, обязательно запишите пароль от базы данных данные.
Где в моей CMS настроить подключение к MySQL
Список основных CMS с путями до их конфигурационных файлов, в которых задаются реквизиты для подключения к БД.
Базы данных MySQL
MySQL — это свободная реляционная система управления базами данных. База данных (БД) — это место, в котором хранятся данные. Слово «реляционный» означает, что данные хранятся в наборах данных, в виде таблиц.
В разделе MySQL вы можете создавать и удалять БД, настраивать доступ к ним, следить за их статистикой по нагрузке и объёму данных.

Управление базами данных осуществляется через таблицу. Для баз данных доступны следующие возможности:
Перейти в phphMyAdmin;
Посмотреть статистику по базе.
Добавить доступ к БД;
Изменить комментарий;
Удалить базу данных;
В таблице под каждой БД указаны доступы для подключения:

По умолчанию у всех БД настроен доступ localhost. Остальные доступы добавляются кнопкой
. При добавлении доступа вам будет выведено окно:

В открывшемся окне вы можете:
- Указать IP-адрес или доменное имя компьютера, с которого будет производиться подключение к БД;
- Создать уникальные пароли для отдельных адресов или единый пароль для всех сразу;
- Указать в качестве доступа localhost, если вы удаляли его ранее.
Если необходимо создать доступ к базе данных со всех адресов, то при создании доступа установите флажок в поле «Единый доступ для различных IP-адресов».
Возле
расположена кнопка
— посмотреть статистику по базе. При её нажатии можно посмотреть информацию о нагрузке на базу данных, а также динамику изменения размера.

Создание базы данных
База данных MySQL создается в несколько кликов:
- Придумайте имя БД и впишите его в поле Имя базы. По умолчанию в поле уже вписан ваш логин в системе, вам остаётся лишь дописать латиницей после «_» придуманное название;
- Придумайте надежный пароль для входа в БД или воспользуйтесь генератором случайных паролей
; - Нажмите кнопку Добавить.

Обратите внимание на чекбокс Сохранить пароль для phpMyAdmin. Если галочка установлена, то при подключении phpMyAdmin к БД пароль будет введён автоматически, а если при создании БД чекбокс был не активен, то при подключении phpMyAdmin к БД пароль нужно будет вводить вручную.

Если при создании БД вы не поставили галочку Сохранить пароль для phpMyAdmin и забыли его, то в дальнейшем вы можете изменить пароль
в таблице управления БД.

Ненужные соединения можно удалить кнопкой
.
Подключение к базе данных
Для внешнего подключения к БД введите следующую команду:
Пример: mysql -h pseudofb.beget.tech -u pseudofb_myadm_b -p
Сервер для внешних подключений и имя пользователя указаны в левой части раздела MySQL.

После подключения к серверу MySQL вы можете работать с БД.
Для внутреннего подключения к БД вам необходимо подключиться по SSH к серверу:
Пример: ssh pseudofb@pseudofb.beget.tech
После установки SSH соединения можно подключиться к MySQL:
Для подключения CMS к БД в большинстве случаев необходимо указать следующие параметры в настройках CMS (конфигурационных файлах):
В блоке Полезная информация (левая сторона раздела MySQL) можно посмотреть расположение конфигурационных файлов популярных CMS, в которых редактируются данные настройки.


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


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

Также в разделе есть параметры для подключения к БД и полезная информация о настройки подключения CMS к MySQL.
Базы данных MySQL
SQL — это сокращение от Structured Query Language (структурированный язык запросов). SQL создан для работы с реляционными базами данных. Он позволяет пользователям взаимодействовать с базами данных (просматривать, искать, добавлять и управлять данными). MySQL соответствует спецификации ANSI 92 SQL.
Какая версия MySQL установлена на вашем хостинге?
На хостинге установлена MySQL версии — 5. Всю необходимую информацию о сервере Вы можете получить из Панели Управления Аккаунтом в разделе «Статистика» или уточнить у технической поддержки.
Как мне создать базу?
Создавать базы данных Вы можете самостоятельно из Панели Управления в разделе «MySQL».
Для создания базы данных MySQL Вам необходимо определить имя БД. По умолчанию будет создан доступ с локальной машины (IP: 127.0.0.1 или localhost). При создании доступов с других IP Вы указываете свой пароль для каждого IP.
Какой Hostname, Username, Password для работы с MySQL на сервере?
Работа с MySQL-сервером по умолчанию осуществляется через localhost — т.е
- hostname: localhost
- username — ваш логин пользователя, который совпадает с именем БД, к которой Вы подключаетесь.
- password — пароль, который Вы задали в Панели Управления при создании базы данных.
Можно позволить пользоваться MySQL-сервером с другогo IP, а не только с localhost?
Да, необходимо настроить доступ из Панели Управления в разделе «MySQL». При создании доступов с других IP Вы указываете свой пароль для каждого IP.
Как восстановить базу данных?
Восстановление базы данных можно произвести из Панели Управления в разделе BackUp.
Выбираете «Восстановление MySQL», выбираете дату, за которую Вы хотите восстановить, выбираете базу данных и нажимаете «восстановить».
У Вас есть phpMyAdmin и как в него попасть?
Да, конечно. Попасть в phpMyAdmin можно из Панели Управления в разделе «MySQL». Напротив каждой базы данных есть ссылка с надписью «phpMyAdmin», переходите по ней, вводите пароль к базе данных и попадаете в phpMyAdmin.
Где настройки соединения с базой данных в WordPress?
Настройки соединения с базой данных можно задать в файле wp-config.php в корневой директории сайта, изменив следующие строки:
Имя пользователя равно имени базы данных.
Подскажите, где настройка соединения с базой данных в UMI.CMS?
Настроить соединение с базой данных MySQL в UMI.CMS можно в файле mysql.php в корневой директории сайта, изменив следующие строки:
Ошибка при загрузке базы — Duplicate entry
При загрузке дампа базы возникает ошибка
Ее можно проигнорировать на тех строках, где идет ошибка, заменив конструкцию INSERT на INSERT IGNORE, если ошибок много , то можно воспользоваться командой sed
Использование MySQL на отдельном сервере с приватной сетью VPS
Приватную сеть — функционал, доступный пользователям VPS — можно использовать для вынесения MySQL на отдельный сервер. В этом случае веб-сервер обрабатывает запросы от клиентов и через приватное подключение обменивается данными с базой.
Это может быть полезно в случае, когда база данных требует значительное количество ресурсов сервера. При переносе MySQL на отдельный сервер появляется возможность выделить для работы базы данных практически все ресурсы, доступные серверу, и не повредить этим работе прочих приложений.
Ниже мы приведём пример разворачивания такого проекта — мы будем устанавливать WordPress с подключением базы данных на другом сервере. Для этого мы используем два сервера с Ubuntu 20.04.
Подготовка серверов
- Перейдите в Панель Управления аккаунтом и создайте два VPS. Подробнее о создании сервера Вы можете прочитать здесь.
- На первый сервер установите Ubuntu 20.04 и LEMP-стек. Далее мы будем обозначать этот сервер как VPS 1, на нём будет располагаться веб-сервер. На второй сервер установите Ubuntu 20.04 — мы будем обозначать его как VPS 2, на нём будет располагаться база данных.
- Подключите VPS 1 и VPS 2 к приватной сети по инструкции «Как подключить VPS к приватной сети».
Установка MySQL-сервера
- Подключитесь по протоколу SSH к VPS 2, используя его внешний IP. Подробнее этот процесс описан в нашей статье.
- Установите на сервер MySQL. Вы можете сделать это с помощью команд:
- Установите root-пароль для MySQL. Для этого используйте клиент MySQL. Подключитесь к серверу:
- Выполните команду изменения доступа к серверу, где MyNewPass — выбранный Вами пароль:
- Отправьте команду MySQL-серверу для того, чтобы он переприменил настройки доступа:
Если Вы разворачиваете проект для проверки возможностей серверов и сети, Вы можете пропустить этот шаг. Однако, если Вы разворачиваете проект для дальнейшей работы на нём, рекомендуем всё же установить root-пароль для обеспечения безопасности данных сайта.
- Перейдите в конфигурационный файл MySQL:
В этом файле найдите раздел [mysqld] и измените в нём значения bind-address и mysqlx-bind-address , указав вместо 127.0.0.1 IP-адрес VPS 2 во внутренней сети. В нашем примере этот раздел выглядит следующим образом:
- Сохраните и закройте файл. Перезапустите MySQL-сервер командой:
- Подключитесь к MySQL. Для этого введите команду:
Если ранее Вы не устанавливали root-пароль для MySQL, то в ответ на запрос пароля потребуется просто нажать Enter. После успешного подключения Вы увидите в терминале приглашение ко вводу данных.
- Создайте БД для проекта. Укажите имя БД. Например, в нашем примере БД будет названа beget_test :
- Далее потребуется создать два пользователя для только что созданной БД: для локального и для удалённого подключения. Начнём с создания локального пользователя.
Вам потребуется придумать имя пользователя и пароль. В нашем примере имя пользователя — begetuser , пароль для него — testpassword .
- Присвойте пользователю права на любые изменения в базе данных:
- Создайте пользователя для удалённого подключения. В качестве хоста укажите приватный IP, присвоенный VPS 1.
Для пользователя БД мы указываем тот IP, с которого будет производиться подключение к БД, а не IP хоста, на котором расположена сама БД.
Вы можете использовать те же логин и пароль, которые устанавливали для локального пользователя. В нашем случае имя пользователя — так же begetuser , IP, с которого будет производиться подключение к БД — 10.16.0.2, пароль для пользователя — testpassword .
- Этому пользователю также нужно выдать права на любые изменения в базе данных:
- Чтобы изменения вступили в силу, обновите привилегии для пользователей:
Пользователи созданы. Теперь Вы можете выйти из MySQL при помощи команды exit.
Проверка подключения к MySQL-серверу
- Протестируйте локальное подключение к базе:
Если подключение прошло успешно, Вы можете выйти из MySQL при помощи команды exit.
- Проверьте, что удалённое подключение также работает корректно. Перейдите на VPS 1 и подключитесь к БД, находящейся на VPS 2:
После ключа — h укажите приватный IP VPS 2.
Если возникнет такая ошибка:
вероятнее всего, в конфигурации MySQL на стороне VPS 2 не был изменен конфигурационный файл или не перезапущен сервер MySQL.
Установка WordPress
- После предыдущего шага останьтесь на VPS 1 и скачайте установочный пакет WordPress с официального сайта с помощью команды:
- Распакуйте архив:
- Создайте копию конфигурационного файла и переименуйте её, чтобы WordPress смог её обработать:
- Откройте конфигурационный файл WordPress и укажите данные для подключения к базе:
Что указывать в переменных:
- DB_NAME — имя базы данных;
- DB_USER — имя пользователя MySQL для удалённого подключения;
- DB_PASSWORD — пароль от базы данных;
- DB_HOST — приватный IP VPS 2.
Сохраните и закройте файл.
- Скопируйте папку с файлами WordPress в корневую папку nginx:
- Измените владельца файлов на www-data, чтобы Nginx смог корректно их обрабатывать:
- Перейдите в файл /etc/nginx/sites-enabled/default и добавьте index.php в строку под комментарием:
Должно получиться вот так:
После этого используйте команду systemctl restart nginx, чтобы перезагрузить Nginx.