Как создать базу данных mariadb с нуля на ubuntu

Обновлено: 05.07.2024

В этой статье я покажу, как создать базу данных (также известную как schema, схема), таблицы (с типами данных) и объясню, как выполнять операции языка управления данными (Data Manipulation Language (DML)) на MySQL / MariaDB сервере.

Подразумевается, что вы уже установили MySQL или MariaDB сервер.

Для краткости я буду говорить MariaDB, но все концепции и команды из этой статьи также применимы к MySQL.

Создание баз данных, таблиц и авторизированных пользователей

Под базой данных понимается набор организованной информации. MariaDB является системой управления базами данных (СУБД). Для создания, модификации и управления данными используется язык структурированных запросов, по-английски structured query language, т.е. SQL. Именно основы этого языка мы и будем осваивать в этой статье. Чтобы не путаться, помните, что MariaDB использует термины «база данных» и «схема» как взаимозаменяемые.

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

Подключение к базе данных

Запросы к базе данных можно передавать из большинства языков программирования, например, из PHP, а также возможно напрямую. Для непосредственного подключения к СУБД MariaDB введите:

После появления запроса, введите пароль, приглашение оболочки Bash смениться на приглашение MariaDB:


Именно сюда мы будет вводить последующие команды.

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

Для создание новой базы данных с название BooksDB, введите в приглашение командной строки MariaDB следующую команду:


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

Введение в типы данных MariaDB

Как сказано ранее, таблицы – это объекты базы данных, где мы будет хранить постоянную информацию. Каждая таблица состоит из колонок. Колонка содержит данные определённого типа.

Самыми распространёнными типами данных в MariaDB являются следующие

Число:

  • BOOLEAN значение 0 считается false (т.е. ложь), а любые другие данные расцениваются как true (т.е. истина).
  • TINYINT (tiny integer, т.е. буквально крошечное целое число), можно использовать как SIGNED (т.е. со знаком), тогда этим типом охватываются числа от -128 до 127, также можно использовать как UNSIGNED (т.е. без знака), тогда в охватываемый диапазон входят целые числа от 0 до 255.
  • SMALLINT (small integer, т.е. буквально маленькие целые числа), опять же, если используется с SIGNED, то этим типом охватывается диапазон от -32768 до 32767. Диапазон UNSIGNED от 0 до 65535.
  • MEDIUMINT (medium integer, т.е. буквально средние целые числа, с SIGNED это от -8388608 до 8388607. Без знака это диапазон от 0 до 16777215.
  • INT (integer, буквально целое число), если используется с SIGNED, охватывает диапазон от -2147483648 до 2147483647, и от 0 до 4294967295 в противном случае.
  • BIGINT (big integer, т.е. буквально большое целое число), со знаком это диапазон от -9223372036854775808 до 9223372036854775807. Без знака от 0 до 18446744073709551615.

Помните: В TINYINT, SMALLINT, MEDIUMINT, INT и BIGINT, SIGNED предполагается по умолчанию.

  • DOUBLE(M, D), где M – это общее количество цифр, а D – это количество цифр после десятичной точки, представляет собой числа с двойной точностью с плавающей запятой. Если указана UNSIGNED, отрицательные значения не разрешены.

Строка:

  • VARCHAR(M) представляет строку переменной длины, где M – это максимально разрешённая длина колонки в байтах (65,535 в теории). В большинстве случае количество байтов идентично количеству символов, кроме символов, которым может потребоваться до 3 байтов (utf8). Например, испанская буква ñ представляет собой один символ, но использует 2 байта.
  • TINYTEXT – это текстовые значения, с максимальной длиной 255 символов. Эффективная максимальная длина меньше, если значение содержит многобайтную кодировку.
  • TEXT(M) представляет колонку с максимальной длиной в 65,535 символов. Тем не менее, как и с VARCHAR(M), реальная максимальная длина уменьшается при сохранении многобайтных символов. Если M указана, создаётся самая маленькая колонка типа TEXT, которая достаточно большая для хранения значения длиной в M символов.
  • MEDIUMTEXT(M) и LONGTEXT(M) похожи на TEXT(M), разница только в максимально разрешённой длине значения, которая составляет, соответственно 16,777,215 и 4,294,967,295.

Дата и время:

  • DATE представляет дату в формате YYYY-MM-DD.
  • TIME представляет время в формате HH:MM:SS.sss (чисы, минуты, секунды и милисекунды).
  • DATETIME является комбинацией DATE и TIME в формате YYYY-MM-DD HH:MM:SS.
  • TIMESTAMP используется для определения момента, когда строка была добавлена или обновлена.

Теперь, когда вы бегло ознакомились с типами данных, вам будет проще определить, данные какого типа назначить заданной колонке в таблице.

Создание таблицы с Primary и Foreign ключами

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

Ключ primary (главный) содержит значение, которое индивидуально определяет каждый ряд или запись в таблице. А foreign (буквально «внешний») используется для создания связи между данными в двух таблицах, и контролирования данных, которые могут сохраняться в таблице, где размещён foreign ключ. Обычно для primary и foreign ключей выбирают тип INT.

Для иллюстрации, давайте воспользуемся BookstoreDB и создадим две таблицы с именами AuthorsTBL и BooksTBL как показано ниже. Константа NOT NULL означает, что данное поле требует значение и не может быть NULL (не заданным).

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

Если сейчас мы начнём вводить данные, СУБД не будет знать, для какой базы данных они предназначаются. На сервере может быть множество БД – в какой из них пользователь создаёт таблицы? Чтобы разрешить эту неопределённость используется команда USE, после которой указывается имя базы данных, с который вы собираетесь работать:

Посмотрите на изменившееся приглашение командной строки:


Теперь все введённые команды и данные будут относиться к БД BookstoreDB.

Скопируйте целиком и вставьте следующие команды в приглашение командной строки:


Как видим, команда создания таблицы имеет вид

Команду можно было вводить построчно или скопировать и вставить за один раз. При построчном вводе СУБД в качестве окончания вводимой команды ожидает точки с запятой (;). Также команду можно было записать в одну строку, например:

Никакой разницы нет.

Теперь мы может продолжить и начать вводить данные в AuthorsTBL и BooksTBL.

Выбор, вставка, обновление и удаление рядов

Начнём с заполнения таблица AuthorsTBL. Почему? Нам нужно иметь значения AuthorID перед вставкой записей в BooksTBL.

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

Команда вставки строк в таблицу называется INSERT и имеет общий вид:

В результате этой команды была бы вставлена одна новая строка. За один раз можно вставить сразу несколько строк. Команда вставки нескольких строк имеет вид:

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

Но поскольку в таблице AuthorsTBL при характеристике типа AuthorID был установлен флаг AUTO_INCREMENT, который означает автоматическую установку уникального номера, то мы смогли из нашей команды убрать информацию, относящуюся к AuthorID. СУБД всё сделала сама: сама заполнила эти поля значениями 1, 2, 3.

Чтобы в этом убедиться, давайте посмотрим на нашу таблицу командой SELECT:


Команда SELECT используется для получения (выбора) записей из таблицы.

Общий синтаксис команды:

Как мы могли убедиться, часть WHERE условие; является опциональной. Если она не определена, то выбираются все строки. После SELECT можно указать название полей, которые вас интересуют, например:

Символ звёздочки (*) означает сразу все поля, т.е. вывод последней команды полностью идентичен SELECT * FROM AuthorsTBL;

Можно указать (через запятую) любой набор полей по желанию:


После WHERE можно указывать различные условия. Например, я хочу выбрать все поля, в строках которых автором является Agatha Christie, команда для этого:


Теперь сделаем вставку (INSERT) записей в таблицу BooksTBL, мы будем использовать соответствующий AuthorID автора для каждой книги. Значение 1 в BookIsAvailable говорит о наличии книги, а 0 – об её отсутствии:

Посмотрим содержимое таблицы BooksTBL:

Мы допустили ошибку, у книги The Alchemist должна быть цена 22.75. Для изменения данных в таблице используется команда UPDATE. Её общий синтаксис:

Для того, чтобы книги, у которой BookID равен 6 присвоить столбцу BookPrice новое значение 22.75 выполним следующую команду:

Как можно убедиться, данные изменились:


При желании удалить запись (строку), можно воспользоваться командой DELETE. Синтаксис этой команды:

Например, команда для удаления из таблицы BooksTBL строки, у которой значение поля столбца равно 6:

Не забывайте с командами UPDATE и DELETE использовать условие WHERE, поскольку без него можно удалить все строки в таблице или изменить значение столбца сразу для всех записей.

Объединение вывода из нескольких таблиц

Если вы хотите объединить два (или более) полей, в том числе разных таблиц, вы можете использовать оператор CONCAT. Например, допустим мы хотим получить результат, состоящий из полей имени книги и автора, в виде “The Alchemist (Paulo Coelho)” и другой клонки с ценой.

Команду можно прочитать как SELECT (выбрать) поле1, поле2, поле3 FROM (из) таблицы1 JOIN (объединённой с) таблицей2 ON (по общим полям) таблица1.поле = таблица2.поле) :


Как мы видим, CONCAT позволяет объединить несколько строковых выражений, разделённых запятой. Также для представления результата объединения мы выбрали псевдоним Description.

Ещё обратите внимание на новый синтаксис обращения к данным в виде имя_таблицы.имя_колонки (через точку)

Создание пользователя для доступа к безе данных

Использование root для выполнения операций языка управления данными (DML) в базе данных – это плохая идея. Чтобы избежать это, мы можем создать новый пользовательский аккаунт MariaDB (мы назовём его bookstoreuser) и назначим необходимые разрешения для BookstoreDB:


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

Дополнительные подсказки MySQL

Для очистки приглашения MariaDB, можно воспользоваться сочетанием клавиш Ctrl+l или набрать следующую команду и нажать Enter:

Если вы ещё не догадались, последовательность символов \! отправляет последующую команду в шелл Linux (а не в СУБД) и выводят их результат на экран. После \! можно использовать любые команды Bash.

Для анализа конфигурации данной таблицы сделайте:

Для SHOW COLUMNS IN можно использовать сокращение DESC:


Быстрая проверка обнаружила, что поле BookIsAvailable может иметь значение NULL. Поскольку мы не хотим разрешать это, мы изменим таблицу командой ALTER:

При повторной проверке теперь YES на пересечении BookIsAvailable и Null смениться на NO.

Как вы помните, мы создали пользователя bookstoreuser. Давайте зайдём в MariaDB как этот пользователь. Для завершения сессии введите

или нажмите Ctrl + d


После ключа -p можно сразу указать пароль. Между ключами -u и -p и следующими за ними именем пользователя и паролем необязательно ставить пробел.

Показ всех баз данных

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


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

Как показать все таблицы в базе данных

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

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

База данных удаляется командой DROP DATABASE:

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

Если БД существует, то она будет удалена, если она отсутствует, то данная команда не вызовет ошибку.

Заключение

В этой статье мы разобрались, как выполнять DML операции и как создать базу данных, таблицы, отдельного пользователя базы данных в MariaDB. Дополнительно, мы рассмотрели несколько подсказок, которые могут сделать вашу жизнь системного администратора / администратора базы данных проще.

MariaDB - это очень популярная система управления базами данных (СУБД), которая пришла на смену MySQL. Фактически, это одно и то же программное обеспечение (форк), только MariaDB развивается открытым сообществом разработчиков и автором MySQL, а разработкой MySQL занимается компания Oracle. Следовательно, MariaDB чаще получает обновления, раньше получает новые возможности и патчи, которые устраняют проблемы с безопасностью.

Поэтому MariaDB заменила MySQL во многих дистрибутивах (например, в дистрибутивах Debian) и теперь поставляется по умолчанию. Однако данная СУБД не устанавливается в Ubuntu по умолчанию. Если вам необходимо установить MariaDB в Ubuntu, то необходимо устанавливать пакет с именем mariadb-server, иначе установится база данных MySQL. В этой статье мы рассмотрим, как установить MariaDB в Ubuntu 20.04.

Установка MariaDB в Ubuntu 20.04

1. Установка из официальных репозиториев

MariaDB присутствует в официальных репозиториях Ubuntu, и если вам нужна стабильная версия, то лучше устанавливать её именно оттуда. На момент написания статьи (23 августа 2021 года) в официальных репозиториях Ubuntu присутствует версия 10.03. Для установки данной версии, выполните следующую команду в терминале:

sudo apt -y install mariadb-server-10.3 mariadb-client

Для получения ссылки на репозиторий откройте официальный сайт, выберите ваш дистрибутив, выберите версию дистрибутива, а затем желаемую версию MariaDB:

crNC83TyjpeswskFfSEgyFgYa2WUboD1Qyhq21oYikhzzEGhhXUZQjJvB3Ow6WcYiV+zeQyVxn9Yp26qslY5yy58aKLmlNBfRUjRpWghlPV0CifLCuykthqH6DGSDS0UjT0ZGXHDZYvtQajQXSWptsMW9vkFoQNOlHlyiuhvf8fr+oAfp5WVGUAAAAASUVORK5CYII=

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

w9VvwEHRKSc2AAAAABJRU5ErkJggg==

Для Ubuntu 20.04 необходимо выполнить следующие команды:

a9OtyaBrkahBwZekMVuuEcQc8iIxxG9ixWIL6+UrnhVEVPf1Ob1jeYnup1bhqv8fuL3kCWyV4NAAAAAASUVORK5CYII=

Далее обновите списки репозиториев и устанавливаем MariaDB:

sudo apt update

sudo apt -y install mariadb-server mariadb-client

XBSvREqbYRbVJeP+XUGc6p8ol4cxywwqdsX1XwuIHCtbj+P9i6aRACebQ+AAAAAElFTkSuQmCC

После того, как установка будет завершена, проверьте запущена ли СУБД:

sudo systemctl status mariadb

wEaZzYIsi6wzQAAAABJRU5ErkJggg==

Теперь установка MariaDB завершена и можно переходить к настройке.

Настройка MariaDB в Ubuntu 20.04

1. Первоначальная настройка

Сразу после установки MariaDB ещё не готова к работе. Для обеспечения её безопасности необходимо выполнить команду:

На первом этапе программа попросит вас ввести пароль от учетной записи root именно от самой СУБД MariaDB (не путать с пользователем root в операционной системе). Так как во время установки программа не предлагала ввести нам пароль, зададим его на данном этапе. При появлении фразы Enter current password for root (enter for none): нажимаем на клавишу Enter.

Далее при появлении фразы Switch to unix_socket authentication [Y/n], введите y, для переключения авторизации на Unix сокеты и нажмите клавишу Enter.

Далее появится фраза Change the root password? [Y/n], введите y, для того чтобы изменить пароль root и нажмите Enter, затем задайте два раза пароль:

uba1jiaxlydlDPznnUzDrGxyf+HyJxHbSZ1kutAAAAAElFTkSuQmCC

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

wVXfOnit0KHLgAAAABJRU5ErkJggg==

2. Создание базы данных

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

sudo mysql -u root -p

D5lCr2gGi6EmAAAAAElFTkSuQmCC

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

Для создания базы данных с именем test_database выполните SQL команду:

CREATE DATABASE test_database;

x99QcZoMP4iXwAAAABJRU5ErkJggg==

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

CREATE USER 'test_user' IDENTIFIED BY 'password';

Wraji+cacv7m1fLp280v8HUnyH7ViHO64AAAAASUVORK5CYII=

У нашего пользователя имя text_user и пароль password. Теперь дадим ему права на созданную ранее базу данных:

GRANT ALL ON *.* TO 'test_user'@localhost IDENTIFIED BY 'password';

Как удалить MariaDB из Ubuntu 20.04

Чтобы удалить MariaDB Ubuntu, достаточно выполнить команду:

sudo apt -y purge mariadb-server mariadb-client

PlOM0hRp4SX1O0Mkt306k32w9gkkxtf4PHXx+Uk0YAxAgeSYSOcmTp2ROiLo9lL35N4o4dIMQ30n6aeIB0qzNA0T310ZZ+dA2BRr6pGe2+C8owpyKqHWGKLlGeQG+L8BOA5D05lQfrAAAAAASUVORK5CYII=

Затем очистите систему от пакетов, которые установились автоматически:

sudo apt -y autoremove

И можно удалить файлы базы данных, которые находятся по адресу /var/lib/mysql/

sudo rm -Rf /var/lib/mysql

Выводы

В этой статье мы разобрали, как выполняется установка MariaDB в Ubuntu 20.04. Как видите, процесс практически не отличается от установки MySQLЕсли вам нужна база данных с поддержкой всех самых современных возможностей и нововведений, обязательно следует выбрать MariaDB. А что вы предпочитаете, MariaDB или MySQL?

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

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

Установка MariaDB на сервер Ubuntu

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

Выберите свою операционную систему, необходимую версию MariaDB После чего введите в терминале полученные команды для установки свежей версии MariaDB

Обновим все пакеты Ubuntu, чтобы установить самое свежее ПО со всеми исправлениями

Установим систему управления базами данных MariaDB на сервер

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

Создание базы данных, пользователя и его пароля

На ваш выбор представляем два варианта, как создать базу данных, пользователя и его пароль.

Вариант 1

Подключаемся к базе данных

Пароль можно не вводить, нажмите Enter (если пароль запрашивался при установки базы MariaDB, то вводим пароль)

Создаем базу данных

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

База данных готова к подключению любой CMS.

Вариант 2

Подключаемся к базе данных

Пароль можно не вводить, нажмите Enter (если пароль запрашивался при установки базы MariaDB, то вводим пароль)

Создаем базу данных

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

Задаем права для пользователя

База данных готова к подключению любой CMS.

У вас еще остались вопросы? Пишите их в комментариях, рассказывайте, что у вас получилось или наоборот!

Вот и все! Больше полезных статей и инструкций читайте в разделе Статьи и Хаки Android. Оставайтесь вместе с сайтом Android +1, дальше будет еще интересней!


Сегодня это самый быстрорастущий сервер баз данных с открытым исходным кодом.

За многие годы MySQL был королем серверов баз данных для всех Linux-систем.

Теперь MariaDB является королем серверов баз данных для всех Linux-систем после текущей материнской компании MySQL, Oracle внесла некоторые изменения в свои условия лицензирования, которые разозлили много людей в сообществе с открытым исходным кодом.

Сегодня MariaDB является сервером баз данных по умолчанию для большинства дистрибутивов Linux, если не для всех.

Для тех, кто хочет протестировать MariaDB на Ubuntu 18.04 LTS, шаги, описанные ниже, помогут начать работу.

Сначала запустите приведенные ниже команды, чтобы обновить машину Ubuntu 18.04.

Затем запустите следующие команды для установки сервера и клиента MariaDB.

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

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

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

Введите текущий пароль для root (введите значение none): просто нажмите Enter
Установить пароль root? [Y / n]: Y
Новый пароль: Введите пароль
Повторно введите новый пароль: Повторите пароль
Удалить анонимных пользователей? [Y / n]: Y
Запретить вход в систему удаленно? [Y / n]: Y
Удалить тестовую базу данных и получить доступ к ней? [Y / n]: Y
Обновить таблицы привилегий сейчас? [Y / n]: Y

Перезагрузите сервер MariaDB, когда закончите.

Чтобы проверить версию MariaDB, выполните следующую команду:

Теперь, когда сервер MariaDB установлен, файл конфигурации по умолчанию находится по адресу /etc/mysql/mariadb.config.d/50-server.cnf.

Здесь вы вводите директивы конфигурации для оптимизации и повышения производительности сервера баз данных.

Большинство настроек, которые вы будете искать, будут в этом файле.

Внесите все изменения в файл выше и сохраните CTRL + x, а затем перезапустите сервер.

Административные команды MariaDB

Теперь мы обсудим некоторые полезные команды администрирования MariaDB.

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

1) Проверка версии вашей установки MariaDB

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

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

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