SQL — удаление базы данных

SQL — удаление базы данных Хостинг

Мы далеко не лучше знаем то, что видим ежедневно (Л. Мерсье).

SQL - удаление базы данных

ператор DROP DATABASE используется для удаления существующей базы данных в SQL.

Создание (удаление) базы данных MySQL и пользователя из командной строки (BASH)

В этой статье рассмотрим, как создавать новые базы данных в MySQL из командной строки сервера, (а также BASH-скрипт для автоматического создания базы данных и пользователя MySQL на сервере).

Небольшая памятка по работе с сервером MySQL из командной строки.

Получить информацию об установленной версии MySQL

mysql -V

Для подключения к mysql в консоли наберите команду

mysql -h you_sql_server -u user_name -p
  • h — хост c MySQL. Если подключаемся с локальной машины, параметр можно опустить
  • u — имя пользователя MySQL (root или другой пользователь MySQL)
  • p — пароль, который будет предложено ввести после нажатия enter

Приглашение командной строки изменится, это значит, сервер MySQL ждёт от вас команд.

mysql>

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

Для отключения от MySQL нужно написать exit или (в unix-системах) нажать комбинацию клавиш ctrl+с.

Для вывода всех баз данных на сервере используйте команду show databases.

SHOW DATABASES;

Выберите нужную базу данных командой use.

USE db_name;

Теперь можно вводить запросы.

Чтобы подключиться к MySQL и сразу выбрать нужную базу

mysql -u user_name -h host_name db_name -p

Нельзя передать сложность, а только знание о ней. (Алан.Дж.Перлис)

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

Если у вас установлена последняя версия MySQL, все готово.

Затем проверьте состояние системного mysql.service, выполнив следующую команду

sudo systemctl status mysql

Если служба не активна, запустите службу.

sudo systemctl start mysql

После запуска службы подключитесь к клиенту MySQL или войдите в оболочку MySQL как пользователь root. Если у вас нет доступа к учетной записи пользователя root, замените «root» своим именем пользователя. В этой статье мы будем использовать терминал для демонстрации процесса вместо графического интерфейса, известного как MySQL WorkBench.

sudo mysql -u root -p

После входа в MySQL выведите список баз данных с помощью команды SHOW DATABASES.

Когда у вас есть список баз данных, выберите базу данных, которую вы хотите удалить. Если вы хотите удалить существующую базу данных, вы можете запустить простую команду DROP DATABASE вместе с именем базы данных следующим образом:

DROPDATABASE имя_базы_данных;

Имейте в виду, что вы можете удалить или отбросить базу данных, только если у вас есть права на удаление этой базы данных. Итак, убедитесь, что вы вошли в систему под конкретным пользователем, у которого есть права на удаление этой базы данных.

После удаления базы данных мы снова перечислим базы данных, используя команду SHOW DATABASES.

Удаленная база данных больше не существует в MySQL.

В другом случае, как и при создании базы данных, вы можете использовать предложение IF EXISTS, чтобы избежать ошибки, если базы данных с указанным именем нет. Если вы не используете предложение «If EXISTS» и база данных не существует, MySQL выдаст ошибку. Синтаксис для использования предложения IF EXISTS следующий.

DROPDATABASEIFEXISTS имя_базы_данных;

Заблуждения, заключающие в себе некоторую долю правды, самые опасные (А. Смит).

Как удалить базу данных MySQL в Linux через командную строку

ySQL — самая популярная система управления реляционными базами данных с открытым исходным кодом.

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

Все команды выполняются от имени администратора (минимальная привилегия,необходимая для удаления базы данных DROP) или от имени учетной записи root.

Чтобы получить доступ к консоли MySQL, введите следующую команду и введите ваш пароль пользователя root MySQL при появлении запроса:

mysql -u root -p

Если вы не установили пароль для своего корневого пользователя MySQL, вы можете пропустить переключатель -p.

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

SHOW DATABASES;

Команда выше напечатает список всех баз данных на сервере. Вывод должен быть похож на это:

+--------------------+
| Database           |
+--------------------+
| information_schema |
| database_name      |
| mysql              |
| performance_schema |
| test               |
+--------------------+
5 rows in set (0.00 sec)

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

Читайте также:  Простая установка: узнайте, как создать SSH-сервер

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

Чтобы удалить базу данных, введите следующую команду, где 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 NOT EXISTS database_name;
Query OK, 1 row affected, 1 warning (0.00 sec)

В выводе выше Query OK означает, что запрос был успешным, и 1 warningговорит нам, что база данных не существует и база данных не была удалена.

В Linux базы данных MySQL и имена таблиц чувствительны к регистру.

Например, чтобы удалить базу данных с именем database_name, введите следующую команду и введите свой пароль пользователя root MySQL при появлении запроса:

mysqladmin -u root -p drop database_name

Вы узнали, как удалить базу данных MySQL.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Если статья понравилась, то поделитесь ей в социальных сетях:

Вход под root на MySQL-сервер

[email protected]:~# mysql -uroot
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 15
Server version: 10.1.38-MariaDB-0+deb9u1 Debian 9.8

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]>

Для того, чтобы выйти из режима работы с MySQL-сервером в консоли нужно набрать команду exit:

MariaDB [(none)]> exit
Bye
[email protected]:~#

Полезные команды MySQL

Показать все таблицы выбранной базы данных в текущей БД.

SHOW TABLES;

Показать все таблицы базы данных db_name.

SHOW TABLES FROM db_name;

Показать список столбцов в таблице table_name в текущей БД

SHOW COLUMNS FROM table_name;

Показать список столбцов в таблице table_name из БД db_name

SHOW COLUMNS FROM table_name FROM db_name;

Вывести структуру нужной таблицы

DESCRIBE table_name;

Показать структуру таблицы, будет выведен sql-запрос на её создание через «CREATE TABLE».

SHOW CREATE TABLE table_name;

Вывести значения системных переменных.

SHOW VARIABLES;

Показать список выполняющихся в настоящий момент запросов.

SHOW PROCESSLIST;

Общая статистика MySQL.

SHOW STATUS;

Статистика по всем таблицам в базе db_name.

SHOW TABLE STATUS FROM db_name;

Что бы выполнять запросы к MySQL из консоли, не всегда требуется предварительно подключаться к mysql. Параметр -e позволяет исполнить команду, вывести результат на экран, после чего отключиться от сервера MySQL. Например, можно вывести список таблиц базы данных.

mysql -uroot -e 'SHOW TABLES' db_name && echo done

Исправление и оптимизация баз данных в MySQL

Чтобы исправить ошибки в поврежденной таблице, в консоли MySQL выполните:

> REPAIR TABLE table_name;

Если же в БД много поврежденных таблиц можно воспользоваться командой mysqlcheck.

Читайте также:  Что такое домен и субдомен? Все, что Вам нужно знать

Проверить db_name на ошибки.

$ mysqlcheck -p db_name

Восстановление и оптимизация всех БД

$ mysqlcheck -Aor -p
  • p – использовать пароль
  • -A, —all-databases – проверять все базы данных
  • -o, —optimize – оптимизировать
  • -r, —repair – восстанавливать повреждённые
  • —auto-repair – автоматическое восстановление

Простейший BASH-скрипт для удаления базы данным MySQL с пользователем

Также можно создать BASH-скрипт для удаления базы данным MySQL с пользователем, имеющим такое же имя, что и база данных. Работает с одним параметром на входе:

#!/bin/bash

mysql -uroot <<MYSQL_SCRIPT
DROP DATABASE $1;
DROP USER '$1'@'localhost';
MYSQL_SCRIPT

echo "MySQL database and user deleted."
echo "Database:   $1"
echo "Username:   $1"

Работа с пользователями

Вывести список пользователей

SELECT User,Host FROM mysql.user;
SHOW GRANTS FOR user_name FROM db_name;

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

CREATE USER 'user'@'host' IDENTIFIED BY'password';

Чтобы создаваемый пользователь смог подключаться к серверу MySQL с любого IP адреса или хоста (за исключением localhost), можно использовать символ процента, вот так

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

Чтобы разрешрешить пользователю подключаться вообще со всех хостов, придётся создать для него две учётные записи.

CREATE USER 'user'@'%' IDENTIFIED BY 'password';
CREATE USER 'user'@'localhost' IDENTIFIED BY 'password';
GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER,INDEX 
ON db_name.* TO 'user'@'localhost';

Чтобы изменить права пользователю, иногда удобно сначала сбросить все права

REVOKE ALL PRIVILEGES ON *.* FROM 'user'@'localhost';

А затем установить нужные с помощью GRANT, как было показано выше.

GRANT ALL PRIVILEGES ON db_name.* TO 'user'@'localhost';
REVOKEALLON db_name.* FROM 'user'@'localhost';

Сделать из пользователя суперпользователя и дать полный доступ ко всем БД на сервере

GRANT ALL ON *.* TO 'user'@'localhost';
DROP USER user@localhost;
FLUSH PRIVILEGES;

Изменить пароль пользователя в консоли MySQL

SET PASSWORD FOR 'user'@'localhost' = PASSWORD('new_password');

FLUSH PRIVILEGES;
UPDATE mysql.user SET Password=PASSWORD('new_password') WHERE User='user_name';
FLUSH PRIVILEGES;
service mysqld restart;
$ mysqladmin -uuser_name password'password'

Пример

Если вы хотите удалить существующую базу данных <TestDB>, то заявление DROP DATABASE будет выглядеть следующим образом:

SQL> DROP DATABASE testDB;

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

Убедитесь, что вы имеете права администратора перед удалением любой базы данных. После того, как база данных удалиться, вы можете проверить список баз данных следующим образом:

SQL> SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| AMROOD             |
| TUTORIALSPOINT     |
| mysql              |
| orig               |
| test               |
+--------------------+
6 rows in set (0.00 sec)

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Если статья понравилась, то поделитесь ей в социальных сетях:

Простейший BASH-скрипт для создания новой базы данным MySQL с пользователем и паролем

Быстро создавать базы данных можно с помощью такого BASH-скрипта:

#!/bin/bash

mysql -uroot <<MYSQL_SCRIPT
CREATE DATABASE $1 CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER '$1'@'localhost' IDENTIFIED BY '$2';
GRANT ALL PRIVILEGES ON $1.* TO '$1'@'localhost';
FLUSH PRIVILEGES;
MYSQL_SCRIPT

echo "MySQL database created."
echo "Database:   $1"
echo "Username:   $1"
echo "Password:   $2"

На входе этому скрипту нужно задать два параметра:

  1. Имя базы данных (у пользователя будет такое же имя)
  2. Пароль пользователя базы данных.

Пример работы такого скрипта create-mysql.sh при создании базы данных test c пользователем test и паролем 123:

[email protected]:~# ./create-mysql.sh test 123
MySQL database created.
Database:   test
Username:   test
Password:   123

DROP USER — команда MySQL для удаления пользователя базы данных

MariaDB [(none)]> DROP USER `new_user`;
Query OK, 0 rows affected (0.00 sec)

Wrapping Up

This tutorial and video covers how to view and delete a MySQL database from the command line in Linux. It is useful for removing databases that are no longer in use.

CREATE USER — команда MySQL для создания пользователя базы данных

MariaDB [(none)]> CREATE USER new_user;
Query OK, 0 rows affected (0.00 sec)

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

MariaDB [(none)]> UPDATE mysql.user SET Password=PASSWORD('tyt_parol') WHERE User='new_user';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

Как удалить базу данных MySQL с сервера

Для удаления базы данных MySQL с сервера нужно воспользоваться командой DROP DATABASE и ввести имя удаляемой базы данных:

MariaDB [(none)]> DROP DATABASE `new_db`;
Query OK, 0 rows affected (0.00 sec)

How to Delete a MySQL or MariaDB Database via Command Line

Step 1: Log into the MySQL Server

Once complete, you reach a MySQL prompt.

Step 2: Delete a Database in MySQL or MariaDB

Note: Removing a MySQL or MariaDB database cannot be undone. 

DROP DATABASE tutorial_database;
ERROR 1008 (HY000): Can't drop database 'tutorial_database'; database doesn't exist
DROP DATABASE IF EXISTS tutorial_database;
Get 75% off a VPS!

Step 3: View All MySQL Databases

mysql> SHOW DATABASES;
 +--------------------+
 | Database           |
 +--------------------+
 | information_schema |
 | mysql              |
 | test               |
 +--------------------+
 4 rows in set (0.00 sec)

Бэкап MySQL из командной строки

Экспорт базы MySQL

$ mysqldump -u username -p db_name > dump.sql

Дамп нескольких баз

$ mysqldump -u username -p -B db_name1 db_name2 > dump.sql

Дамп всех баз на сервере

$ mysqldump -u username -p -A > dump.sql

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

$ mysqldump -u username -p --no-data db_name > database.sql

Дамп структуры одной таблицы mysql, без данных:

$ mysqldump -u username -p -h host db_name table_name --no-data > /path/dump.sql

Развернуть базу данных MySQL из дампа

$ mysql -u username -p db_name < dump_to_restore.sql

Управление базами данных

Создание базы данных из консоли сервера

$ mysqladmin -u root -p create db_name

Удаление базы данных из консоли сервера

mysqladmin -u root -p drop db_name

Создание базы данных db_name из консоли MySQL

CREATE DATABASE db_name COLLATE utf8_general_ci;

Удаление базы данных db_name из консоли MySQL

DELETE DATABASE db_name;

Замена в поле одной подстроки на другую

UPDATE table SET field=replace(field,'original string','new string');

Синтаксис

Основной синтаксис заявления DROP DATABASE выглядит следующим образом:

DROP DATABASE DatabaseName;

Всегда имя базы данных должно быть уникальным в пределах RDBMS.

Читайте также:  Защитите свой почтовый сервер с помощью сертификата Letsencrypt: просто и надежно

Как посмотреть настройки уже существующей базы данных

Для того, чтобы посмотреть настройки уже существующей базы данных необходимо выполнить команду SHOW CREATE DATABASE, указав имя базы данных, настройки которой нужно посмотреть:

MariaDB [(none)]> SHOW CREATE DATABASE `new_db`;
+----------+-----------------------------------------------------------------------------------------------+
| Database | Create Database                                                                               |
+----------+-----------------------------------------------------------------------------------------------+
| new_db   | CREATE DATABASE `new_db` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci */ |
+----------+-----------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

Клонирование таблиц

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

CREATE TABLE NEW_TableName LIKE OLD_TableName

Клонировать таблицы базы данных со всеми данными.

CREATE TABLE NEW_TableNameSELECT *FROM OLD_TableName
CREATE TABLE NEW_TableName
LIKE OLD_TableName
INSERT INTO NEW_TableName
SELECT *
FROM OLD_TableName;

На этом всё. Но вы можете поддержать проект. Даже небольшая сумма поможет нам писать больше полезных статей.

Если статья помогла или понравилась, пожалуйста поделитесь ей в соцсетях.

CREATE DATABASE — команда MySQL для создания базы данных

Для того, чтобы создать базу данных на сервере нужно воспользоваться командой MySQL CREATE DATABASE, введя после неё в `` название базы данных. Помним про синтаксис MySQL и после команды обязательно ставим ;:

MariaDB [(none)]> CREATE DATABASE `new_db`;
Query OK, 1 row affected (0.00 sec)

Более полная конструкция команды CREATE DATABASE:

CREATE DATABASE new_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
  • CHARACTER SET задаёт порядок сортировки.
  • COLLATE задаёт кодировку таблиц создаваемой базы данных.

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

  • Если задан параметр CHARACTER SET, но не задан параметр COLLATE, то используется стандартный порядок сортировки.
  • Если задан параметр COLLATE, но не задан CHARACTER SET, то кодировку определяет первая часть имени порядка сортировки в COLLATE.
    • Кодировка, заданная в CHARACTER SET, должна поддерживаться сервером,
    • а порядок сортировки должен быть допустимым для текущей кодировки.
  • Если не заданы оба параметра, то берётся значение по умолчанию.

Prerequisites

  • Server running CentOS or AlmaLinux with MySQL or MariaDB.
  • Root access to the server and log in as root.
  • Create a database if one does not exist.

How to Delete A Database In MySQL/MariaDB

Video by Andrew Casares

Резюме

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

Заберите ссылку на статью к себе, чтобы потом легко её найти!
Выберите, то, чем пользуетесь чаще всего:

Вывод

Эта статья содержит два разных метода удаления существующей базы данных в MySQL, как с предложением IF EXISTS, так и без него.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Если статья понравилась, то поделитесь ей в социальных сетях:

Как посмотреть список всех баз данных на сервере MySQL

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

MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| new_db             |
+--------------------+
3 rows in set (0.00 sec)

Оцените статью
Хостинги