Создание базы данных в MySQL

Создание базы данных в MySQL

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

Введение

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

Подготовка

Перед началом работы у вас должен быть установлен и настроен MySQL-сервер. В этой статье мы не будем показывать, как это сделать. Если у вас еще нет готового сервера, почитайте нашу статью о процессе установки и первоначальной настройки MySQL на Windows.

Мы будем работать с сервером, развернутым на виртуальной машине Selectel.

Так как это удаленный сервер, нам понадобится его внешний IP-адрес. В этих примерах мы будем использовать адрес 82.202.199.34.

Подключение к серверу и создание новой базы

Все операции будем показывать на двух примерах: консольный клиент и phpMyAdmin. Если у вас другой инструмент для подключения к серверу, почитайте его документацию или используйте SQL-команды, которые мы будем выполнять при работе через консольный клиент. Они универсальны и подойдут для любого инструмента.

Через консоль

Подключимся к удаленному серверу MySQL:


    mysql -u root -h 82.202.199.34 -p

После ввода этой команды нужно ввести пароль от пользователя root, который вы указывали на этапе установки и первоначальной настройки СУБД.

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


    show databases;

Результат:


    +--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
| test               |
+--------------------+

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


    CREATE DATABASE my_db_cli;

Снова посмотрим список всех баз:


    show databases;

Видим, что наша БД появилась в списке:


    +--------------------+
| Database           |
+--------------------+
| information_schema |
| my_db_cli          |
| mysql              |
| performance_schema |
| sys                |
| test               |
+--------------------+

Через phpMyAdmin

Чтобы указать сервер для подключения, нужно отредактировать файл config.inc.php. В зависимости от вашей ОС или дистрибутива Linux, этот файл может находиться в разных директориях, поэтому мы не будем указывать конкретный путь. Откройте файл и добавьте в него строчку:


    $cfg['Servers'][$i]['host'] = '82.202.199.34';

Теперь откройте интерфейс phpMyAdmin и залогиньтесь на сервере. В левой части экрана находится список созданных баз данных. Мы видим уже созданную нами ранее базу my_db_cli.

Создадим еще одну базу. Для этого над списком БД нажмите кнопку «Создать БД».

Укажем имя новой базы, а кодировку оставим по умолчанию. В нашем примере это:


    utf8mb4_unicode_ci.

База данных создана, и теперь она появилась в списке слева:

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

Сейчас у нас есть только root-пользователь, который имеет полный доступ к серверу и может работать с любой БД. Нам нужно создать новых пользователей и выдать им полномочия, чтобы каждый мог работать только с одной базой.

Через консоль

Создадим нового пользователя:


    CREATE USER 'user_cli'@'%' IDENTIFIED BY 'password';

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


    GRANT ALL PRIVILEGES ON my_db_cli.* TO 'user_cli'@'%' WITH GRANT OPTION;

Через phpMyAdmin

Теперь сделаем то же самое через phpMyAdmin. Переходим на вкладку «Учетные записи пользователей» и в нижней части экрана нажимаем «Добавить учетную запись пользователя».

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

После создания пользователя сразу откроется экран настройки полномочий. Мы хотим выдать права только на определенную БД, поэтому перейдем на вкладку «База данных» и выберем нужную базу.

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

Теперь проверим полномочия на примере одного пользователя. Для этого залогинимся под пользователем user_cli и попробуем получить доступ к обеим базам данных.

Подключаемся к серверу:


    mysql -u user_cli -h 82.202.199.34 -p

Попробуем выбрать БД, к которой нет доступа:


    use my_db_gui;

Ответ сервера:


    ERROR 1044 (42000): Access denied for user 'user_cli'@'%' to database 'my_db_gui'

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


    use my_db_cli;
create table t(id int);

Ошибок не возникло, значит полномочия настроены правильно.

Удаление базы данных

Теперь покажем, как удалить созданные БД. Учтите, что при удалении базы также удаляются все таблицы с данными в ней, поэтому будьте аккуратны и перепроверяйте названия баз, которые собираетесь удалить.

Через консоль


    drop database my_db_cli;

Через phpMyAdmin

Выбираем нужную БД, переходим на вкладку «Операции» и нажимаем «Удалить базу данных».

Заключение

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