MySQL — самая популярная система управления реляционными базами данных с открытым исходным кодом.
В этом руководстве описывается, как удалить (или удалить) базу данных MySQL или MariaDB через командную строку.
Как создать базу данных и нового пользователя в MySQL: инструкция
В этой инструкции мы рассмотрим, как в MySQL создать пользователя и базу, как удалить базу, как выдать пользователям привилегии.
По умолчанию вам будет доступен пользователь root. Используйте его, чтобы выполнить первоначальную настройку: создать первую БД и других пользователей.
Приведенные команды подойдут для управления MySQL, развернутой на сервере. Если же вы пользуетесь облачной базой данных, пользователь и сама база будут созданы автоматически при создании БД в панели управления.
MySQL — самая популярная система управления реляционными базами данных с открытым исходным кодом. Сервер MySQL позволяет нам создавать множество пользователей и баз данных и предоставлять соответствующие привилегии, чтобы пользователи могли получать доступ к базам данных и управлять ими.
В этом руководстве объясняется, как использовать командную строку для создания и управления базами данных MySQL или MariaDB и пользователями.
Summary: in this tutorial, you will learn how to use the MySQL DROP DATABASE statement to delete an existing database in the server.
- Introduction to the MySQL DROP DATABASE statement
- MySQL DROP DATABASE using mysql program example
- DROP DATABASE using MySQL Workbench
- Summary
- Зачем так радикально?
- Программные оболочки
- Средства SQL
- Создайте новую учетную запись пользователя MySQL
- Удалить базу данных MySQL
- Подготовка
- Удалить учетную запись пользователя MySQL
- Выдача привилегий
- Изменить пароль учетной записи пользователя MySQL
- Удалить базу данных MySQL с помощью mysqladmin
- Показать права учетной записи пользователя MySQL
- Создание базы данных
- Создать новую базу данных MySQL
- Удалить базу данных в MySQL
- Подготовка
- Удаление учётной записи
- Удаление базы данных
- Предоставление разрешений учетной записи пользователя MySQL
- Создание пользователя
- Ключевые команды, которые нужно знать
- Список всех баз данных MySQL
- Отзыв привилегий
- Список всех баз данных MySQL
- Отзыв разрешений учетной записи пользователя MySQL
- Выводы
- Список всех учетных записей пользователей MySQL
- Выводы
Introduction to the MySQL DROP DATABASE statement
The DROP DATABASE statement drops all tables in the database and deletes the database permanently. Therefore, you need to be very careful when using this statement.
SQL (Structured Query Language) In this statement, you specify the name of the database which you want to delete after the DROP DATABASE keywords.
If you drop a database that does not exist, MySQL will issue an error.
To prevent an error from occurring if you delete a non-existing database, you can use the IF EXISTS option. In this case, MySQL will terminate the statement without issuing any error.
The DROP DATABASE statement returns the number of tables it deleted.
In MySQL, the schema is the synonym for the database. Therefore, you can use them interchangeably:
SQL (Structured Query Language) MySQL DROP DATABASE using mysql program example
mysql -u root -p Enter password: ******** Second, display all the databases using the SHOW DATABASES statement:
SQL (Structured Query Language) Third, drop the testdb database by issuing the DROP DATABASE statement:
testdb; SQL (Structured Query Language) Query OK, 0 rows affected (0.03 sec) MySQL returned zero affected rows indicating that the testdb database has no tables.
DROP DATABASE using MySQL Workbench
First, launch the MySQL workbench and log in to the MySQL Server.


Third, MySQL Workbench displays a dialog to confirm the deletion.
If you choose Review SQL, you’ll see the SQL statement that will be executed. If you choose Drop Now, it’ll delete the database immediately.

To be safe, let’s choose Review SQL:

Fourth, once you are sure that the SQL statement is going to drop the right database, you can click the Execute button to execute the statement.

If you view the schemas pane, you will see that the testdb2 is not on the list anymore.

Summary
- Use the MySQL
DROP DATABASEstatement to delete a database.
Was this tutorial helpful?

От автора: вы зачем трете ластиком монитор? Базу данных хотите удалить? Так может лезвием попробовать! Подождите, я пошутил (оказывается, неудачно)! Уберите опаску от экрана, садитесь и запоминайте, как удалить базу MySQL.
Зачем так радикально?
Понятно, что против звезд не попрешь, и все базы из-под вашей руки выходят какие-то «кривые». То не тот тип столбца задашь, то законнектиться нормально не получается. А с триггерами и процедурами вообще полнейший мрак! В таком случае легче просто удалить MySQL данные.
То же самое касается БД, которые прошли через руки «чайных дел мастеров». Причем никто кроме вас не виноват, потому что сами (как администратор баз данных) наделили их правами на изменение и добавление записей в таблицы. В этой ситуации также легче стереть все данные и пересоздать БД из резервной копии. В общем, настоящий админ должен знать не только, как создать, но и как удалить. Точно так же, как квалифицированный стоматолог должен уметь не только вставлять, но и удалять зубы :).
Программные оболочки

Иногда нужно произвести неполное удаление данных MySQL (конкретную таблицу базы). Данная программа предоставляет для этого встроенный функционал.
В списке слева снова выбираем нужную БД. Затем в списке, который отображается во вкладке «Структура» выделите таблицу и нажмите слева ссылку «Удалить». Если требуется просто стереть из таблицы все строки, но не удалять ее, то для этого воспользуйтесь ссылкой «Очистить».

Чтобы удалить определенные записи таблицы, перейдите справа по ссылке. После этого по вкладке «Обзор» (верхнее меню), выделите в таблице нужные строки и нажмите на «Удалить».


Для удаления таблицы в верхнем меню (при активной вкладке «Catalogs») перейдите в раздел «Schema Tables». Нажмите по имени «неправильной» таблицы правой клавишей и выберите команду («Drop Table»).

Средства SQL
Хватит играться, давайте теперь работать как профессионалы. Рассмотрим каким образом можно удалить базу данных MySQL с помощью языка структурированных запросов. Для этого используется команда DROP DATABASE. Ее синтаксис:
Как видите, команда не отличается особой сложностью. В качестве параметров она принимает название БД. При этом использование второго параметра не является обязательным. Указание в запросе IF EXISTS предотвращает вывод сообщения об ошибке и остановку выполнения всех остальных команд. Особенно это важно при использовании мультизапросов, разработке триггеров и хранимых процедур.
Давайте разберемся с применение данной команды MySQL на удаление базы. Для экспериментов создайте «липовую» БД через вкладку основного меню «Базы данных». Я свою так и назвал lipa. Чувство юмора является обязательным атрибутом любого успешного администратора СУБД :).

Дальнейшие эксперименты я предлагаю продолжить в командной строке. Так сказать, для разнообразия. Перед тем, как полностью удалить MySQL базу, зайдите на сервер СУБД под учеткой админа (или другого юзера с глобальными правами): Z:\usr\local\mysql-5.5\bin\mysql.exe -u root

Введите следующий запрос и запустите его на выполнение:
Система СУБД выведет сообщение об удачном выполнении команды и сколько времени потребовалось на это.

Теперь снова введите запрос в MySQL на удаление базы. В ответ на это сервер СУБД начнет ругаться и выдаст сообщение об ошибке, что такой БД уже не существует:

Теперь немного изменим запрос, и используем в нем условное выражение IF EXISTS. Получается, что мы говорим СУБД удалить базу с именем lipa, но лишь в том случае, если она существует:

В результате MySQL выполнит наш запрос и лишь предупредит о наличии несоответствия (отсутствие БД). Но не прекратит выполнение текущего запроса и всего последующего кода, что очень важно при разработке ADO-приложений, триггеров и хранимых процедур. Таким образом гарантируется их отказоустойчивость.
Теперь вы знаете в MySQL как удалить базу. И при всей кажущейся простоте команда DROP DATABASE обладает мощным эффектом. Так что пользуйтесь ею осторожно, а лезвие и ластик оставьте в покое :). До новых встреч!
Создайте новую учетную запись пользователя MySQL
Учетная запись пользователя в MySQL состоит из частей имени пользователя и имени хоста.
">CREATE USER 'database_user'@'localhost' IDENTIFIED BY 'user_password';То же, что и при работе с базами данных, чтобы избежать ошибки при попытке создать учетную запись пользователя, которая уже существует, вы можете использовать:
">CREATE USER IF NOT EXISTS 'database_user'@'localhost' IDENTIFIED BY 'user_password';Query OK, 0 rows affected, 1 warning (0.00 sec)Удалить базу данных 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;Подготовка
Все команды выполняются с правами администратора (минимальные права, необходимые для удаления базы данных — DROP ) или с учетной записью root.
Чтобы получить доступ к консоли MySQL, введите следующую команду и при появлении запроса введите пароль root-пользователя MySQL:
mysql -u root -pЕсли вы не установили пароль для своего пользователя root в MySQL, вы можете опустить ключ -p .
Если вам нужно изменить пароль root MySQL, следуйте этому руководству по сбросу пароля root MySQL через командную строку.
Удалить учетную запись пользователя MySQL
Чтобы удалить учетную запись пользователя , используйте следующую команду:
">DROP USER '[email protected]'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, но не может работать с данными и выполнять другие действия.
В этой таблице — привилегии, которые часто выдают пользователям. Более подробный список смотрите в
Для выдачи прав нужно выполнить команду GRANT. Например:
Чтобы выдать пользователю все права, кроме тех, что есть у root, выполните:
Изменить пароль учетной записи пользователя MySQL
Синтаксис для изменения пароля учетной записи пользователя MySQL или MariaDB зависит от версии сервера, который вы используете в своей системе.
Вы можете узнать версию своего сервера, выполнив следующую команду:
mysql --versionЕсли у вас 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 с помощью mysqladmin
Например, чтобы удалить базу данных с именем database_name , введите следующую команду и введите пароль корневого пользователя MySQL при появлении запроса:
mysqladmin -u root -p drop database_nameПоказать права учетной записи пользователя 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 -u root -pПосмотрите, какие базы уже хранятся на сервере:
Даже если вы ещё ничего не делали, таблица не будет пустой. В ней отобразятся служебные БД. Удалять их не нужно.
создать базу данных MySQL
CREATE DATABASE my_timeweb;Вместо my_timeweb укажите имя, которое необходимо задать новой БД.
Чтобы убедиться, что новая база появилась на сервере, ещё раз выполните:
В таблице отобразится название БД, которую вы только что создали.
Нельзя, чтобы у двух и более БД были одинаковые имена. Если ещё раз создать базу my_timeweb, то появится сообщение об ошибке с кодом 1007.
Чтобы предотвратить появление ошибки, можно в MySQL создать новую базу с помощью расширенного синтаксиса:
CREATE DATABASE IF NOT EXISTS my_timeweb;В этом случае СУБД проверит условие. Если БД с таким именем не существует, то 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 так же просто, как запустить одну команду. Это необратимое действие, и его следует выполнять с осторожностью. Убедитесь, что вы не удаляете неправильную базу данных, поскольку после удаления базы данных ее невозможно будет восстановить.
Чтобы удалить базу данных, введите следующую команду, где database_name — это имя базы данных, которую вы хотите удалить:
">DROP DATABASE database_name;Query OK, 1 row affected (0.00 sec)Если вы попытаетесь удалить несуществующую базу данных, вы увидите следующее сообщение об ошибке:
ERROR 1008 (HY000): Can't drop database 'database_name'; database doesn't existЧтобы не видеть ошибок, как указано выше, используйте вместо этого следующую команду:
">DROP DATABASE IF EXISTS database_name;Query OK, 1 row affected, 1 warning (0.00 sec)В выходных данных выше Query OK означает, что запрос был успешным, а одно 1 warning сообщает нам, что база данных не существует и никакая база данных не была удалена.
В Linux имена баз данных и таблиц MySQL чувствительны к регистру.
Подготовка
Прежде чем вы начнете с этого руководства, мы предполагаем, что в вашей системе уже установлен сервер MySQL или MariaDB. Все команды будут выполняться от имени пользователя root.
Чтобы открыть приглашение MySQL, введите следующую команду и при появлении запроса введите пароль пользователя root MySQL:
mysql -u root -pУдаление учётной записи
Будьте осторожны, команда выполняется без дополнительного подтверждения.
Удаление базы данных
Для удаления выполните:
DROP DATABASE my_timeweb;Вместо my_timeweb укажите имя БД, которую следует удалить.
У DROP DATABASE также есть расширенный синтаксис, который помогает избежать ошибок:
DROP DATABASE IF EXISTS my_timeweb;Запрос будет выполнен только при наличии БД с таким именем.
DROP DATABASE удалит БД и связанные с ней данные. Интерфейс командной строки MySQL не предложит вам подтвердить действие. Поэтому применяйте DROP DATABASE с осторожностью.
Предоставление разрешений учетной записи пользователя 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 [email protected]'localhost';Создание пользователя
MySQL предлагает удобную систему управления юзерами и их привилегиями. Можно менять права доступа, разрешать и запрещать выполнение действий на сервере.
MySQL создать пользователя, авторизуйтесь как root и выполните в консоли:
Если нужно указать не конкретный хост, а целый пул, используйте знак %. Например:
Чтобы посмотреть список учетных записей, выполните:
Ключевые команды, которые нужно знать
Как создать БД в MySQL:
Как удалить БД:
создать нового пользователя MySQL:
Как удалить пользователя:
Это минимальный набор запросов, который поможет в MySQL создать базу данных и пользователя. Особенности использования этих и других возможностей СУБД подробно описаны в
Список всех баз данных MySQL
Вы можете перечислить все базы данных , существующие на нашем сервере MySQL или MariaDB, с помощью следующей команды:
">SHOW DATABASES;Результат будет выглядеть примерно так:
+--------------------+
| Database |
+--------------------+
| information_schema |
| database_name |
| mysql |
| performance_schema |
| sys |
+--------------------+
5 rows in set (0.00 sec)Базы данных information_schema , mysql , performance_schema и sys создаются во время установки и хранят информацию обо всех других базах данных, конфигурации системы, пользователях, разрешениях и других важных данных. Эти базы данных необходимы для правильной работы установки MySQL.
Отзыв привилегий
Чтобы отозвать привилегии, используйте команду REVOKE. У неё такой же синтаксис, как у GRANT. Но результат будет противоположным.
Если учётная запись не имела никаких прав в этой БД, то ничего не изменится.
Список всех баз данных MySQL
Перед тем как удалить базу данных, вы можете просмотреть список всех созданных вами баз данных . Для этого из оболочки MySQL выполните следующую команду:
">SHOW DATABASES;Приведенная выше команда распечатает список всех баз данных на сервере. Результат должен быть похож на этот:
+--------------------+
| Database |
+--------------------+
| information_schema |
| database_name |
| mysql |
| performance_schema |
| test |
+--------------------+
5 rows in set (0.00 sec)Отзыв разрешений учетной записи пользователя MySQL
Если вам нужно отозвать одну или несколько привилегий или все привилегии от учетной записи пользователя, синтаксис почти идентичен предоставлению этого. Например, если вы хотите отозвать все привилегии учетной записи пользователя над определенной базой данных, используйте следующую команду:
">REVOKE ALL PRIVILEGES ON database_name.* TO 'database_user'@'localhost';Выводы
Это руководство охватывает только основы, но оно должно стать хорошим началом для всех, кто хочет научиться управлять базами данных MySQL и пользователями из командной строки. Вы также можете проверить руководство о том, как сбросить пароль root MySQL, если вы его забыли.
Список всех учетных записей пользователей 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.

