- MySQL DROP DATABASE
- Introduction to the MySQL DROP DATABASE statement
- MySQL DROP DATABASE using mysql program example
- DROP DATABASE using MySQL Workbench
- Summary
- Как удалить базу данных MySQL в Linux через командную строку
- Подготовка
- Список всех баз данных MySQL
- Удалить базу данных в MySQL
- Удалить базу данных MySQL с помощью mysqladmin
- Выводы
- Создание и удаление баз в MySQL/MariaDB
- Подключение к СУБД
- Создание новой базы
- Командная строка
- phpMyAdmin
- Настройка прав доступа
- Удаление базы MySQL
- Командная консоль
- phpMyAdmin
- Читайте также
- how to drop database
MySQL DROP DATABASE
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
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.
The following shows the syntax of the DROP DATABASE statement:
DROP DATABASE [IF EXISTS] database_name;
Code language: SQL (Structured Query Language) (sql)
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:
DROP SCHEMA [IF EXISTS] database_name;
Code language: SQL (Structured Query Language) (sql)
In the next section, we will use the testdb and testdb2 created in the CREATE DATABASE tutorial. If you do not have these databases available, you can follow the previous tutorial to create them.
MySQL DROP DATABASE using mysql program example
First, log in to the MySQL Server using the root user:
mysql -u root -p
Code language: Shell Session (shell)
Type the password for the root user and press Enter.
Enter password: ********
Code language: Shell Session (shell)
Second, display all the databases using the SHOW DATABASES statement:
SHOW DATABASES;
Code language: SQL (Structured Query Language) (sql)
+--------------------+ | Database | +--------------------+ | classicmodels | | information_schema | | mysql | | performance_schema | | sys | | testdb | | testdb2 | +--------------------+ 7 rows in set (0.00 sec)
Code language: Shell Session (shell)
Third, drop the testdb database by issuing the DROP DATABASE statement:
DROP DATABASE testdb;
Code language: SQL (Structured Query Language) (sql)
Query OK, 0 rows affected (0.03 sec)
Code language: Shell Session (shell)
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.
Second, right-click the database that you want to remove, for example, testdb2 and choose the Drop Schema. option.
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.
MySQL returns the following output indicating that the database is dropped successfully. Because the testdb2 is an empty database, the number of affected rows is zero.
If you view the schemas pane, you will see that the testdb2 is not on the list anymore.
Summary
Как удалить базу данных MySQL в Linux через командную строку
MySQL — самая популярная система управления реляционными базами данных с открытым исходным кодом.
В этом руководстве описывается, как удалить (или удалить) базу данных MySQL или MariaDB через командную строку.
Подготовка
Все команды выполняются с правами администратора (минимальные права, необходимые для удаления базы данных — DROP ) или с учетной записью root.
Чтобы получить доступ к консоли MySQL, введите следующую команду и при появлении запроса введите пароль root-пользователя MySQL:
Если вы не установили пароль для своего пользователя root в MySQL, вы можете опустить ключ -p .
Если вам нужно изменить пароль root MySQL, следуйте этому руководству по сбросу пароля root MySQL через командную строку.
Список всех баз данных MySQL
Перед тем как удалить базу данных, вы можете просмотреть список всех созданных вами баз данных . Для этого из оболочки MySQL выполните следующую команду:
Приведенная выше команда распечатает список всех баз данных на сервере. Результат должен быть похож на этот:
+--------------------+ | Database | +--------------------+ | information_schema | | database_name | | mysql | | performance_schema | | test | +--------------------+ 5 rows in set (0.00 sec)
Удалить базу данных в 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 сообщает нам, что база данных не существует и никакая база данных не была удалена.
Удалить базу данных MySQL с помощью mysqladmin
Вы также можете удалить базу данных MySQL из терминала Linux с помощью утилиты mysqladmin .
Например, чтобы удалить базу данных с именем database_name , введите следующую команду и введите пароль корневого пользователя MySQL при появлении запроса:
mysqladmin -u root -p drop database_name
Выводы
Вы узнали, как удалить базу данных 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:
how to drop database
It means there are files in that directory not relating to MySQL. Another issue, although I doubt it, is insufficient permissions. You may delete that directory from the filesystem.
I had the same error — and indeed there was a file in that directory — after removing it the deletion worked.
Got same error. This fixed it for me in Ubuntu 10.04:
Where XXXXX is the offending database name.
Worked for me on a MAC. mysql> drop database DB_NAME; ERROR 1010 (HY000): Error dropping database (can’t rmdir ‘./DB_NAME’, errno: 66) 1) which mysql -> /usr/local/mysql/bin/mysql 2) Go to DB folder: cd /usr/local/mysql/data/ 3) Delete DB folder of DB with issue (in this case: «DB_NAME»).
sudo rm -rf /var/lib/mysql/db_production
where db_production is the name of the database
I’ve changed the permissions on mysql folder ( windows server c:\xampp\mysql ) and is working now, I’ve created and dropped databases without any error.
This is what I do on Mac OS X Mavericks:
1) rm -rf /var/lib/mysql/data/*** keep the data dir , rm the contents of data/
mysql -uxxx -pyyy $ drop database data;
then it would be ok to recreate the data database again. hopefully it will help, Attention , direct remove data dir is useless, whatever you restart mysqld or not .
Here is a way to simulate your error
1.create a directory on MySQL data directory
[root@linux]# ls -ltrh /data/mysql/data/ 总用量 173M -rw-rw---- 1 mysql mysql 48M 4月 17 11:00 ib_logfile1 drwx------ 2 mysql mysql 4.0K 4月 17 11:00 performance_schema drwx------ 2 mysql mysql 4.0K 4月 17 11:00 mysql -rw-rw---- 1 mysql mysql 56 4月 18 06:01 auto.cnf drwxr-xr-x 2 root root 4.0K 4月 18 07:25 backup -rw-rw---- 1 mysql mysql 19 4月 23 07:29 mysql-bin.index -rw-rw---- 1 mysql mysql 5 4月 23 07:29 oldboylinux.pid -rw-rw---- 1 mysql mysql 19K 4月 23 07:29 error.log -rw-rw---- 1 mysql mysql 76M 4月 23 09:56 ibdata1 -rw-rw---- 1 mysql mysql 48M 4月 23 09:56 ib_logfile0 -rw-rw---- 1 mysql mysql 5.9K 4月 23 10:21 mysql-bin.000001 drwxr-xr-x 2 root root 4.0K 4月 23 10:36 filmo
3.create a dump file in it
[root@linux]# mysqldump -uroot -p123456 -B mysql>/data/mysql/data/filmo/dump_file.sql
4.MySQL will believe filmo is a database
[root@linux]# mysql -uroot -p123456 -e"show databases;" +--------------------+ | Database | +--------------------+ | information_schema | | backup | | filmo | | mysql | | performance_schema | +--------------------+
5.when I drop this «database»,here is your error
[root@linux]# mysql -uroot -p123456 -e"drop database filmo;" ERROR 1010 (HY000) at line 1: Error dropping database (can't rmdir './filmo/', errno: 17)