- Как установить базу данных на сервер и начать с ней работать
- Что понадобится
- Необходимый минимум для связи с сервером
- Проверяем, есть ли база данных на сервере
- Устанавливаем базу данных
- Создаём новую базу
- Что дальше
- Как создать базу данных и нового пользователя в MySQL: инструкция
- Создание базы данных
- Удаление базы данных
- Создание пользователя
- Удаление учётной записи
- Выдача привилегий
- Отзыв привилегий
- Ключевые команды, которые нужно знать
Как установить базу данных на сервер и начать с ней работать
В каждом проекте мы обычно храним все данные либо во внутренней памяти браузера, либо в текстовых файлах на компьютере или на сервере. Это хорошо работает в простых проектах, когда нужно запомнить несколько десятков строк или чисел. Но в полноценных проектах, где обрабатываются сотни и тысячи записей, так почти никто не делает — вместо этого программисты используют базы данных.
Сегодня мы сделаем первый шаг на этом пути — установим на сервер базу данных MySQL и убедимся, что она работает.
Что понадобится
Чтобы всё получилось, нам будут нужны:
Виртуальный сервер можно взять любой, где будет хотя бы 1 гигабайт памяти на диске для хранения данных. У нас не будет настолько большой базы данных, но этого размера точно хватит и для базы, и для установки всех нужных программ.
Необходимый минимум для связи с сервером
Чтобы сервером можно было управлять со своего домашнего компьютера, нам понадобится настроить SSH — программу для безопасной связи между компьютерами по сети. Так как почти все серверы в интернете работают на линуксе без графической оболочки, команды для управления будем вводить в терминале (или командной строке, кому какое название больше нравится).
Перед тем как продолжить, проверяем, что у нас работает доступ к серверу по SSH:
Командой ssh root@82.146.34.72 мы велели нашему компьютеру безопасно подключиться к серверу с адресом 82.146.34.72 и получили в ответ приветствие сервера. Это значит, что всё настроено правильно и можно устанавливать базу данных.
Базу данных необязательно устанавливать на сервер — на домашнем компьютере она тоже будет работать. Самый простой способ это сделать — поставить виртуальную машину с Ubuntu и установить базу там. Единственный минус — удалённо поработать с такой базой будет сложно, но для тренировки и изучения SQL-запросов этого хватит.
Проверяем, есть ли база данных на сервере
Некоторые виртуальные серверы уже идут в комплекте с установленной базой данных MySQL, и в этом случае ничего дополнительно устанавливать не придётся. Проверить, если ли MySQL на сервере, можно командой mysql -V :
Сервер ответил, что не знает этой команды, — это значит, что база MySQL не установлена.
Дальше мы будем использовать команды установщика для Ubuntu, потому что именно эта операционная система стоит на нашем сервере. Если у вас другая версия линукса, замените наши команды установки apt install на свои.
Устанавливаем базу данных
Установим сразу и серверную, и клиентскую части базы данных MySQL. Серверная отвечает за обработку и хранение данных, а клиентская — за отправку запросов на сервер. Теоретически можно было бы обойтись одной серверной частью, но мы ставим клиентскую, чтобы сразу получить возможность отправлять запросы в базу и видеть результат.
Для установки обеих частей выполним команду apt install mysql-server mysql-client . Сервер соберёт данные об установке и скажет, что ему понадобится около 250 мегабайт на диске — для установки нужно будет ввести английскую букву «y» и нажать энтер:
Когда установка закончится, снова проверим, знает ли сервер о том, что у него теперь есть MySQL, командой mysql -V :
Сервер ответил, что у нас установлена версия 8.0.29, — это значит, что мы всё сделали правильно.
Создаём новую базу
Последнее, что нам осталось сделать, — создать новую базу данных.
Все команды в MySQL называются запросами и пишутся внутри её собственной командной строки. Для перехода в неё пишем команду mysql -u root:
У нас поменялся внешний вид приветствия в командной строке: вместо имени пользователя и текущей папки мы видим строку mysql> — это значит, что мы сейчас общаемся с базой данных и она готова принимать и выполнять команды.Создадим новую базу с названием thecodeDB командой CREATE DATABASE:
Обратите внимание на точку с запятой в конце команды — без неё база данных не поймёт, что запрос закончился, и будет ждать продолжения:
Убедимся, что база создана, — выполним команду SHOW DATABASES;
Мы используем рабочий сервер для Nextcloud, поэтому на нём уже есть несколько баз данных, но наша база тоже теперь есть в списке — это значит, что MySQL про неё знает и может с ней работать.
Что дальше
Сейчас у нас на сервере есть своя база данных, настроенная и готовая к работе. В следующей статье мы попробуем её в деле — возьмём какой-нибудь наш старый проект и переделаем его под хранение данных в базе.
В «Яндекс Практикуме» можно стать разработчиком, тестировщиком, аналитиком и менеджером цифровых продуктов. Первая часть обучения всегда бесплатная, чтобы попробовать и найти то, что вам по душе. Дальше — программы трудоустройства.
Как создать базу данных и нового пользователя в MySQL: инструкция
В этой инструкции мы рассмотрим, как в MySQL создать пользователя и базу , как удалить базу, как выдать пользователям привилегии.
По умолчанию вам будет доступен пользователь root. Используйте его, чтобы выполнить первоначальную настройку: создать первую БД и других пользователей.
Приведенные команды подойдут для управления MySQL, развернутой на сервере. Если же вы пользуетесь облачной базой данных , пользователь и сама база будут созданы автоматически при создании БД в панели управления.
Создание базы данных
Подключитесь к MySQL под учётной записью root:
Посмотрите, какие базы уже хранятся на сервере:
Даже если вы ещё ничего не делали, таблица не будет пустой. В ней отобразятся служебные БД. Удалять их не нужно.
Чтобы создать базу данных MySQL , выполните:
CREATE DATABASE my_timeweb;
Вместо my_timeweb укажите имя, которое необходимо задать новой БД.
Чтобы убедиться, что новая база появилась на сервере, ещё раз выполните:
В таблице отобразится название БД, которую вы только что создали.
Нельзя, чтобы у двух и более БД были одинаковые имена. Если ещё раз создать базу my_timeweb , то появится сообщение об ошибке с кодом 1007.
Чтобы предотвратить появление ошибки, можно в MySQL создать новую базу с помощью расширенного синтаксиса:
CREATE DATABASE IF NOT EXISTS my_timeweb;
В этом случае СУБД проверит условие. Если БД с таким именем не существует, то MySQL создаст её. Если же такая база была создана ранее, то ничего не изменится.
Удаление базы данных
Вместо my_timeweb укажите имя БД, которую следует удалить.
У DROP DATABASE также есть расширенный синтаксис, который помогает избежать ошибок:
DROP DATABASE IF EXISTS my_timeweb;
Запрос будет выполнен только при наличии БД с таким именем.
DROP DATABASE удалит БД и связанные с ней данные. Интерфейс командной строки MySQL не предложит вам подтвердить действие. Поэтому применяйте DROP DATABASE с осторожностью.
Создание пользователя
MySQL предлагает удобную систему управления юзерами и их привилегиями. Можно менять права доступа, разрешать и запрещать выполнение действий на сервере.
Чтобы в MySQL создать пользователя, авторизуйтесь как root и выполните в консоли:
CREATE USER 'user'@'localhost' IDENTIFIED BY 'password';
После выполнения этой команды пользователь с именем user получит доступ к экземпляру MySQL с локальной машины (localhost). Прямой доступ с других хостов будет запрещён. Для идентификации будет использован пароль.
Если нужно указать не конкретный хост, а целый пул, используйте знак % . Например:
CREATE USER 'sub_user'@'10.0.%' IDENTIFIED BY 'password;
Запись 10.0.% указывает на то, что получить доступ к MySQL можно с любого клиента, IP-адрес которого начинается с «10.0.».
Вы можете использовать подстановочный знак на любом уровне IP-адреса в определении хоста. Чтобы юзер был доступен со всех хостов, используйте запись ‘user’@’%’ .
Чтобы посмотреть список учетных записей, выполните:
Удаление учётной записи
Удалить учётную запись MySQL можно командой DROP USER :
Будьте осторожны, команда выполняется без дополнительного подтверждения.
Выдача привилегий
Без привилегий пользователь может подключиться к серверу MySQL, но не может работать с данными и выполнять другие действия.
В этой таблице — привилегии, которые часто выдают пользователям. Более подробный список смотрите в документации .
Что может делать пользователь
Менять структуру таблицы или БД
Создавать новые БД и таблицы
Добавлять строки в таблицу
Обновлять данные в таблице
Для выдачи прав нужно выполнить команду GRANT . Например:
GRANT SELECT, INSERT ON my_timeweb.* TO 'user'@'localhost';
Выполнять эту команду нужно из-под учётной записи root, так как у неё есть привилегия на GRANT . После применения такого запроса user сможет читать и добавлять строки в таблицы БД my_timeweb .
Чтобы выдать пользователю все права, кроме тех, что есть у root, выполните:
GRANT ALL PRIVILEGES ON my_timeweb.* TO 'user'@'localhost';
Отзыв привилегий
Чтобы отозвать привилегии, используйте команду REVOKE . У неё такой же синтаксис, как у GRANT . Но результат будет противоположным.
Например, если вы хотите отозвать привилегии SELECT и INSERT у user в базе данных my_timeweb , введите следующее:
REVOKE SELECT, INSERT ON my_timeweb.* FROM 'user'@'localhost';
Если учётная запись не имела никаких прав в этой БД, то ничего не изменится.
Ключевые команды, которые нужно знать
CREATE DATABASE IF NOT EXISTS [database_name];
DROP DATABASE IF EXISTS [database_name]
Как создать нового пользователя MySQL:
CREATE USER 'user'@'host' IDENTIFIED BY 'password';
Это минимальный набор запросов, который поможет в MySQL создать базу данных и пользователя. Особенности использования этих и других возможностей СУБД подробно описаны в документации MySQL .
Вы также можете использовать для управления графический интерфейс. Его предоставляют такие инструменты, как PhpMyAdmin или MySQL Workbench. В их документации подробно описаны действия для создания и работы с БД и пользователями.