Как сделать удаленную базу данных

Обновлено: 07.07.2024

MySQL и MariaDB – реляционные системы управления базами данных. Данные инструменты используются на VPS для управления данными разных программ. Обе программы написаны на языке запросов SQL, и любая может быть использована на облачном сервере.

Данное руководство описывает создание базы данных при помощи этих инструментов – фундаментальный навык, необходимый для управления данными в среде SQL. Кроме того, статья рассматривает некоторые другие аспекты управления базами данных.

В данном руководстве используется сервер Ubuntu 12.04. Тем не менее, другие дистрибутивы будут работать подобным образом.

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

Войдите в MySQL или MariaDB при помощи следующей команды:

Введите пароль администратора, установленный во время инсталляции MySQL/MariaDB.

Теперь можно создать базу данных, введя команду:

CREATE DATABASE new_database;
Query OK, 1 row affected (0.00 sec)

Чтобы избежать ошибок, возникающих в случае, если БД с таким именем уже существует, используйте команду:

CREATE DATABASE IF NOT EXISTS new_database;
Query OK, 1 row affected, 1 warning (0.01 sec)

Warning означает, что база данных с таким именем уже существует и новая БД не была создана.

Если же опция IF NOT EXISTS не была использована, а БД с таким именем уже существует, появится следующее уведомление об ошибке:

ERROR 1007 (HY000): Can't create database 'other_database'; database exists

Просмотр баз данных MySQL и MariaDB

Чтобы получить список существующих баз данных, используйте команду:

SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| new_database |
| other_database |
| performance_schema |
+--------------------+
5 rows in set (0.00 sec)

Базы данных information_schema, performance_schema и mysql в большинстве случаев создаются по умолчанию, без крайней необходимости (и умения с ними работать) их лучше не трогать.

Изменение баз данных в MySQL и MariaDB

Любая операция, выполняемая без явного указания базы данных, будет выполнена на текущую БД.

Чтобы узнать, какая база данных является текущей, наберите:

Результат NULL сообщает, что на данный момент текущая база данных не выбрана.

Чтобы выбрать БД для последующих операций, используйте следующую команду:

USE new_database;
Database changed

Снова используйте запущенную ранее команду, чтобы узнать, какая БД является текущей:

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

Чтобы удалить базу данных в MySQL/MariaDB, используйте команду:

DROP DATABASE new_database;
Query OK, 0 rows affected (0.00 sec)

Примечание: данную операцию невозможно отменить! Убедитесь, что базу данных действительно нужно удалить, прежде чем нажать enter!

Если выполнить эту команду на БД, которой не существует, появится следующая ошибка:

DROP DATABASE new_database;
ERROR 1008 (HY000): Can't drop database 'new_database'; database doesn't exist

Чтобы предотвратить эту ошибку и добиться выполнения команды вне зависимости от того, существует БД или нет, используйте опцию IF EXISTS:

DROP DATABASE IF EXISTS new_database;
Query OK, 0 rows affected, 1 warning (0.00 sec)

В данном случае warning значит, что такой базы данных не существует, но команда выполнена.

Итоги

Итак, данное руководство ознакомило с базовыми навыками, необходимыми для управления базами данных MySQL или MariaDB. Конечно, есть еще огромное множество функций, которые нужно научиться использовать.

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

Если требуется работать с базами данных MySQL удалённо (например, с помощью установленного на собственном компьютере MySQL-клиента либо со стороннего сервера, где размещён сайт, которому требуется работать с базой данных у нас на хостинге), то существует возможность разрешить удалённые подключения.

Правило для удалённого доступа создается для IP-адреса либо для подсети.

  • Для IP-адреса следует полностью указать IP-адрес, с которого будет осуществляться работа с MySQL-сервером. Пример записи — 127.0.0.1.
  • Для подсети указывается подсеть, включающая IP-адреса, с которых необходимо будет работать с MySQL-сервером. Либо подсеть /16 (/64 для IPv6) (доступ сразу для всех IP-адресов этой подсети), для которых будет разрешен удаленный доступ к базе. Пример записи — 127.0.%.%.
  • В том случае если подключение к базе данных производится через ssh-тунель, то необходимо дополнительно открыть доступ с IP-адреса — 127.0.0.1.


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


Обращаем внимание, что возможность удалённого доступа к БД понижает уровень безопасности БД. Поэтому крайне рекомендуется устанавливать на БД в меру сложный пароль, а также оперативно удалять правила для удалённого доступа, которые потеряли актуальность.


Если при добавлении IP-адреса возникает ошибка "Ошибка создания нового правила удаленного доступа к базе данных MySql", то стоит обновить пароль на базу данных. Можно использовать тот же пароль. Он указан в конфигурационном файле сайта. Это требуется для обновления хэша.

Для создания базы данных используется команда CREATE DATABASE . Она имеет следующий синтаксис:

В конце команды указывается имя базы данных.

Первая форма CREATE DATABASE имя_базы_даных пытается создать базу данных, но если такая база данных уже существует, то операция возвратит ошибку.

Вторая форма CREATE DATABASE IF NOT EXISTS имя_базы_даных пытается создать базу данных, если на сервере отсутствует бд с таким именем.

Например, в MySQL Workbench CE (или в MySQL Command Line Client) выполним следующую команду:

Она создаст на сервере бд productsdb.

CREATE DATABASE in MySQL

Установка базы данных

После создания БД с ней производятся различные операции: создание таблиц, добавление и получение данных и т.д. Но чтобы установить производить эти операции, надо установить определенную базу данных в качестве используемой. Для этого применяется оператор USE :

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

Для удаления базы данных применяется команда DROP DATABASE , которая имеет следующий синтаксис:

Первая форма DROP DATABASE имя_базы_даных пытается удалить базу данных, но если такая база данных отсутствует на сервере, то операция возвратит ошибку.

Вторая форма DROP DATABASE IF EXISTS имя_базы_даных пытается удалить базу данных, если на сервере имеется бд с таким именем.

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

Для того, чтобы воспользоваться интерфейсом MySQL на удалённом сервере, необходимо сперва законнектится к серверу MySQL. В Debian это можно сделать командой mysql -uroot так, чтобы сразу войти в интерфейс с правами root. После удачного входа появится приветствие сервера MySQL и приглашение для ввода команд на языке MySQL:

Выход в консоли из режима работы с MySQL-сервером

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    Для того, чтобы удалить пользователя баз данных нужно выполнить команду DROP USER :

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

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

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

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

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

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

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

    Резюме

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

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

    Подготовка

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

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

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

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

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

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

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

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

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

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

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

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

    Через phpMyAdmin

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

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

    Создание БД в phpMyAdmin

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

    Имя новой базы

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

    Наша БД в списке

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

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

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

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

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

    Через phpMyAdmin

    Добавление пользователя

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

    Создаём имя и пароль

    Выбираем БД для доступа

    Привилегии

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

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

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

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

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

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

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

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

    Через phpMyAdmin

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

    Заключение

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

    Читайте также: