- Как управлять базами данных MySQL и пользователями из командной строки
- Подготовка
- Создать новую базу данных MySQL
- Список всех баз данных MySQL
- Удалить базу данных MySQL
- Изменить пароль учетной записи пользователя MySQL
- Список всех учетных записей пользователей MySQL
- Удалить учетную запись пользователя MySQL
- Предоставление разрешений учетной записи пользователя MySQL
- Отзыв разрешений учетной записи пользователя MySQL
- Выводы
- Создание и удаление баз в MySQL/MariaDB
- Подключение к СУБД
- Создание новой базы
- Командная строка
- phpMyAdmin
- Настройка прав доступа
- Удаление базы MySQL
- Командная консоль
- phpMyAdmin
- Читайте также
Как управлять базами данных MySQL и пользователями из командной строки
MySQL — самая популярная система управления реляционными базами данных с открытым исходным кодом. Сервер MySQL позволяет нам создавать множество пользователей и баз данных и предоставлять соответствующие привилегии, чтобы пользователи могли получать доступ к базам данных и управлять ими.
В этом руководстве объясняется, как использовать командную строку для создания и управления базами данных MySQL или MariaDB и пользователями.
Подготовка
Прежде чем вы начнете с этого руководства, мы предполагаем, что в вашей системе уже установлен сервер MySQL или MariaDB. Все команды будут выполняться от имени пользователя root.
Чтобы открыть приглашение MySQL, введите следующую команду и при появлении запроса введите пароль пользователя root MySQL:
Создать новую базу данных MySQL
Чтобы создать новую базу данных MySQL, выполните следующую команду, просто замените database_name на имя базы данных, которую вы хотите создать:
CREATE DATABASE database_name;
Query OK, 1 row affected (0.00 sec)
Если вы попытаетесь создать базу данных, которая уже существует, вы увидите следующее сообщение об ошибке:
ERROR 1007 (HY000): Can't create database 'database_name'; database exists
Чтобы избежать ошибок, если база данных с тем же именем, которое вы пытаетесь создать, существует, вы можете использовать следующую команду:
CREATE DATABASE IF NOT EXISTS database_name;
Query OK, 1 row affected, 1 warning (0.00 sec)
В выходных данных выше Query OK означает, что запрос был успешным, а одно 1 warning сообщает нам, что база данных уже существует и новая база данных не была создана.
Список всех баз данных MySQL
Вы можете перечислить все базы данных , существующие на нашем сервере MySQL или MariaDB, с помощью следующей команды:
Результат будет выглядеть примерно так:
+--------------------+ | Database | +--------------------+ | information_schema | | database_name | | mysql | | performance_schema | | sys | +--------------------+ 5 rows in set (0.00 sec)
Базы данных information_schema , mysql , performance_schema и sys создаются во время установки и хранят информацию обо всех других базах данных, конфигурации системы, пользователях, разрешениях и других важных данных. Эти базы данных необходимы для правильной работы установки MySQL.
Удалить базу данных MySQL
Удалить базу данных MySQL так же просто, как запустить одну команду. Это необратимое действие, и его следует выполнять с осторожностью. Убедитесь, что вы не удаляете неправильную базу данных, поскольку после удаления базы данных ее невозможно будет восстановить.
Чтобы удалить MySQL или MariaDB, в базе данных выполните следующую команду:
DROP DATABASE database_name;
Query OK, 0 rows affected (0.00 sec)
Если вы попытаетесь удалить несуществующую базу данных, вы увидите следующее сообщение об ошибке:
ERROR 1008 (HY000): Can't drop database 'database_name'; database doesn't exist
Чтобы избежать этой ошибки, вы можете использовать следующую команду:
DROP DATABASE IF EXISTS database_name;
Создайте новую учетную запись пользователя MySQL
Учетная запись пользователя в MySQL состоит из частей имени пользователя и имени хоста.
Чтобы создать новую учетную запись пользователя MySQL, выполните следующую команду, просто замените database_user именем пользователя, которого вы хотите создать:
CREATE USER 'database_user'@'localhost' IDENTIFIED BY 'user_password';
В приведенной выше команде мы установили часть имени хоста на localhost что означает, что этот пользователь сможет подключаться к серверу MySQL только с локального хоста (то есть из системы, в которой работает сервер MySQL). Если вы хотите предоставить доступ с другого хоста (ов), просто измените localhost на IP-адрес удаленного компьютера или используйте подстановочный знак ‘%’ для части хоста, что означает, что учетная запись пользователя сможет подключаться с любого хоста.
То же, что и при работе с базами данных, чтобы избежать ошибки при попытке создать учетную запись пользователя, которая уже существует, вы можете использовать:
CREATE USER IF NOT EXISTS 'database_user'@'localhost' IDENTIFIED BY 'user_password';
Query OK, 0 rows affected, 1 warning (0.00 sec)
Изменить пароль учетной записи пользователя MySQL
Синтаксис для изменения пароля учетной записи пользователя MySQL или MariaDB зависит от версии сервера, который вы используете в своей системе.
Вы можете узнать версию своего сервера, выполнив следующую команду:
Если у вас MySQL 5.7.6 и новее или MariaDB 10.1.20 и новее, для изменения пароля используйте следующую команду:
ALTER USER 'database_user'@'localhost' IDENTIFIED BY 'new_password';
Если у вас MySQL 5.7.5 и старше или MariaDB 10.1.20 и старше, используйте:
SET PASSWORD FOR 'database_user'@'localhost' = PASSWORD('new_password');
В обоих случаях результат должен выглядеть так:
Query OK, 0 rows affected (0.00 sec)
Список всех учетных записей пользователей MySQL
SELECT user, host FROM mysql.user;
Результат должен выглядеть примерно так:
+------------------+-----------+ | user | host | +------------------+-----------+ | database_user | % | | database_user | localhost | | debian-sys-maint | localhost | | mysql.session | localhost | | mysql.sys | localhost | | root | localhost | +------------------+-----------+ 6 rows in set (0.00 sec)
Удалить учетную запись пользователя MySQL
Чтобы удалить учетную запись пользователя , используйте следующую команду:
DROP USER 'database_user@'localhost';
Если вы попытаетесь удалить учетную запись пользователя, которой не существует, произойдет ошибка.
ERROR 1396 (HY000): Operation DROP USER failed for 'database_user'@'localhost'
То же, что и при работе с базами данных, чтобы избежать ошибки, вы можете использовать:
DROP USER IF EXISTS 'database_user'@'localhost';
Query OK, 0 rows affected, 1 warning (0.00 sec)
Предоставление разрешений учетной записи пользователя MySQL
Есть несколько типов привилегий, которые могут быть предоставлены учетной записи пользователя. Вы можете найти полный список привилегий, поддерживаемых MySQL здесь . В этом руководстве мы рассмотрим несколько примеров:
Чтобы получить все привилегии учетной записи пользователя в конкретной базе данных, используйте следующую команду:
GRANT ALL PRIVILEGES ON database_name.* TO 'database_user'@'localhost';
Чтобы получить все привилегии учетной записи пользователя во всех базах данных, используйте следующую команду:
GRANT ALL PRIVILEGES ON *.* TO 'database_user'@'localhost';
Чтобы получить все привилегии учетной записи пользователя над определенной таблицей из базы данных, используйте следующую команду:
GRANT ALL PRIVILEGES ON database_name.table_name TO 'database_user'@'localhost';
Если вы хотите предоставить учетной записи пользователя только определенные привилегии для определенного типа базы данных:
GRANT SELECT, INSERT, DELETE ON database_name.* TO database_user@'localhost';
Отзыв разрешений учетной записи пользователя MySQL
Если вам нужно отозвать одну или несколько привилегий или все привилегии от учетной записи пользователя, синтаксис почти идентичен предоставлению этого. Например, если вы хотите отозвать все привилегии учетной записи пользователя над определенной базой данных, используйте следующую команду:
REVOKE ALL PRIVILEGES ON database_name.* TO 'database_user'@'localhost';
Показать права учетной записи пользователя MySQL
Чтобы найти привилегии, предоставленные конкретному типу учетной записи пользователя MySQL:
SHOW GRANTS FOR 'database_user'@'localhost';
+---------------------------------------------------------------------------+ | Grants for [email protected] | +---------------------------------------------------------------------------+ | GRANT USAGE ON *.* TO 'database_user'@'localhost' | | GRANT ALL PRIVILEGES ON `database_name`.* TO 'database_user'@'localhost' | +---------------------------------------------------------------------------+ 2 rows in set (0.00 sec)
Выводы
Это руководство охватывает только основы, но оно должно стать хорошим началом для всех, кто хочет научиться управлять базами данных MySQL и пользователями из командной строки. Вы также можете проверить руководство о том, как сбросить пароль root MySQL, если вы его забыли.
Это все! Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.
Создание и удаление баз в MySQL/MariaDB
Обновлено: 10.10.2020 Опубликовано: 10.08.2016
В данных примерах используется командная оболочка mysql и phpMyAdmin.
Если работа ведется на продуктивном сервере баз данных, рекомендуется сделать резервные копии.
Подключение к СУБД
Если мы планируем работать в командной строке, заходим в среду управления MySQL.
* где root — пользователь, под которым мы будем подключаться к оболочке; ключ -p потребует ввода пароля.
б) В Windows запускаем командную строку — в меню пуск или найдя ее в поиске. Переходим в каталог, с установленной СУБД и запускаем одноименную команду mysql, например:
cd «%ProgramFiles%\MySQL\MySQL Server 5.5\bin\»
* в данном примере предполагается, что у нас установлена MySQL версии 5.5.
* здесь, как и в Linux, идет подключение к mysql/mariadb под учетной записью root с запросом пароля.
Создание новой базы
Для создания базы используется SQL-запрос CREATE DATABASE. Рассмотрим подробнее его использование.
Командная строка
Используйте данный шаблон команды:
> CREATE DATABASE newdb DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
* вышеописанная команда создаст базу данных с названием newdb и кодировкой UTF-8 (самая распространенная и универсальная).
Проверить, что база появилась можно командой:
* данная команда выводит в консоль список баз, созданных в СУБД.
Подключиться к базе можно командой:
phpMyAdmin
В phpMyAdmin переходим в раздел Базы данных — вводим название новой базы — выбираем кодировку и нажимаем Создать:
Настройка прав доступа
Чтобы к созданной базе можно было подключиться, добавим пользователя:
> GRANT ALL PRIVILEGES ON newdb.* TO dbuser@localhost IDENTIFIED BY ‘password’ WITH GRANT OPTION;
* где newdb.* — наша база и все ее таблицы; dbuser@localhost — имя учетной записи, которая будет подключаться с локального сервера; password — придуманный нами пароль.
** В данном примере, учетной записи будут предоставлены полные права (ALL PRIVILEGES). Подробнее о правах в MySQL читайте статью Как создать пользователя MySQL и дать ему права.
Посмотреть список пользователей, которые имеют доступ к базе можно командой:
> SELECT db, host, user FROM mysql.db WHERE db=’newdb’;
* в данном примере мы выведем учетные записи, которым был дан прямой доступ к созданной нами базе. В данном списке не будут отражены пользователи с глобальными правами (например, root).
Поменять пароль пользователю можно одной из команд (в зависимости от версии СУБД):
> SET PASSWORD FOR ‘dbuser’@’localhost’ = PASSWORD(‘new_password’);
> ALTER USER ‘dbuser’@’localhost’ IDENTIFIED BY ‘new_password’;
> UPDATE mysql.user SET Password=PASSWORD(‘new_password’) WHERE USER=’dbuser’ AND Host=’localhost’;
* все 3 команды меняют пароль для пользователя dbuser@localhost на новый — new_password.
При необходимости, удалить пользователя можно командами:
> REVOKE ALL PRIVILEGES, GRANT OPTION FROM ‘dbuser’@’localhost’;
> DROP USER ‘dbuser’@’localhost’;
* первая команда отнимает все привилегии, выданные пользователю. Вторая удаляет самого пользователя.
Удаление базы MySQL
Удаление выполняется командой DROP DATABASE.
Командная консоль
Попробуем удалить ранее созданную базу:
phpMyAdmin
Выбираем нужную базу галочкой и кликаем по Удалить:
Читайте также
Другие инструкции по MySQL / MariaDB: