Как установить и настроить MySQL в Ubuntu 20.04

01

Содержание
  1. Пособия для начинающих и продолжающих
  2. Введение
  3. Начальная настройка MySQL
  4.        База данных: 
  5.        Таблицы:
  6. Проверяем, есть ли база данных на сервере
  7. Типы данных в MySQL
  8. Подключение к серверу и создание новой базы
  9. Через консоль
  10. Через phpMyAdmin
  11. Необходимый минимум для связи с сервером
  12. Экспорт, Импорт
  13. Как установить и использовать MySQL Workbench
  14. Создаём новую базу
  15. Создание базы данных в MySQL
  16. Устанавливаем базу данных
  17. Удаление базы данных
  18. Через консоль
  19. Через phpMyAdmin
  20. Работа с командой UPDATE — как обновить данные в таблице MySQL
  21. Как создавать таблицы в MySQL (Create Table)
  22. Сброс пароля root в MySQL
  23. Создание нового пользователя и настройка прав в MySQL
  24. Подготовка системы
  25. Подключение по SSH
  26. Настройка брандмауэра в Ubuntu
  27. Тестирование MySQL
  28. Как создать первичные и внешние ключи MySQL
  29. Создание облачного сервера
  30. Insert в MySQL — добавление данных в таблицу
  31. ALTER TABLE — изменение таблицы в SQL
  32. Удаление MySQL
  33. Подготовка
  34. Что понадобится
  35. Настройка аутентификации и управление пользователями
  36. Аутентификация по паролю
  37. Дополнительный пользователь (опционально)
  38. Как установить MySQL на Windows
  39. Что дальше
  40. Настройка и проверка доступа к базе данных
  41. Через консоль
  42. Через phpMyAdmin
  43. Как установить и настроить MySQL в Ubuntu 20
  44. Заключение

Пособия для начинающих и продолжающих

Сделали подборку из 6 учебников по MySQL, которые будут полезны как для старта, так и развития навыков работы с СУБД и SQL-запросами.

MySQL — это реляционная СУБД, которая использует язык запросов SQL. В инструкции мы рассмотрим, как запустить MySQL на Ubuntu 20.04. Для этого нам потребуется облачный сервер.

Введение

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

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

Сегодня мы сделаем первый шаг на этом пути — установим на сервер базу данных MySQL и убедимся, что она работает. 

Начальная настройка MySQL

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

sudo mysql_secure_installation

Система запросит разрешение на установку плагина валидации паролей. Этот плагин проверяет безопасность пароля и позволяет пользователю ставить только достаточно защищенные пароли.

Если вы хотите установить этот плагин, введите в консоли y или Y.

Есть три уровня защищенности пароля: LOW (0), MEDIUM (1) и STRONG (2). Чтобы задать уровень пароля, нажмите соответствующую цифру, например, 2 для сильного пароля. Даже если вы на предыдущем шаге не установили плагин, система запросит вас поставить пароль для пользователя root — введите его два раза.

Если плагин установлен, будет показан уровень надёжности пароля Estimated strength of the password.

Далее система задаст ряд вопросов: хотите ли вы использовать этот пароль для продолжения работы, удалить ли всех анонимных пользователей, запретить удаленно подключаться как root, удалить тестовую БД и доступ к ней, перезагрузить таблицы с привилегиями. Вы можете ответить на все эти вопросы положительно: y, Y или Enter.

Если в выводе появится All done!, то пароль для root успешно настроен.

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

       База данных: 

Если вы при вводе команды допустили ошибку -> поставьте знак ;

После как подключились к серверу по ssh, заходим в базу данных root: 

 –uLogin –pParol или  –uLogin –p 

  Enter и вводим пароль:

Если сервер MySQL находится на удалённом хосте его можно указать с помощью ключа -h: с учетом что там настроенное внешнее подключение.

 u username p h vashsaytru

Enter и вводим пароль:

Очень полезная команда – status, которая выводит информацию об используемой версии MySQL и многое другое:

Показать все базы:

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

         CREATE DATABASE Ima-Bazi;

         DROP DATABASE Ima-Bazi;

Выйти из mysql:

 нажать  Ctrl и C   или прописать  \q 

       Таблицы:

Создать таблицу:     

Удалить таблицу:         

     SELECT * FROM imya_tablici;

писок всех пользователей mysql:   

Для MySQL 5.7.6 и новее, а также MariaDB 10.1.20 и новее используйте следующую команду 

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

grant all privileges on *.* to 'admin'@'localhost' identified by 'parol'

    Создаем пользователя со всеми привилегиями как у root с Grant  который добавляет базы,  пользователей и привилегии им выдает

grant all privileges on *.* to 'admin'@'localhost' identified by 'parol' WITH GRANT OPTION; 

   Для MySQL 5.7.6 и новее, а также MariaDB 10.1.20 и новее используйте следующую команду.

ALTER USER IDENTIFIED BY 

Меняем пароль у пользователя        

SET PASSWORD FOR 'user-name'@'localhost' = PASSWORD('NEW_USER_PASSWORD');

  Перезагрузите привилегии:   

DROP USER 'LOgin'@'localhost';

Проверяем, есть ли база данных на сервере

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

Как установить базу данных на сервер и начать с ней работать

Сервер ответил, что не знает этой команды, — это значит, что база MySQL не установлена. 

Читайте также:  Хостинг в Европе - Личный кабинет HostiMan

Дальше мы будем использовать команды установщика для Ubuntu, потому что именно эта операционная система стоит на нашем сервере. Если у вас другая версия линукса, замените наши команды установки apt install на свои.

Типы данных в MySQL

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

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

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

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

 mysql -u root -h 82.202.199.34 -p

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

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

 show databases;
 +--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
| test |
+--------------------+

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

 CREATE DATABASE my_db_cli;

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

 show databases;

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

 +--------------------+
| Database |
+--------------------+
| information_schema |
| my_db_cli |
| mysql |
| performance_schema |
| sys |
| test |
+--------------------+

Через phpMyAdmin

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

 $cfg['Servers'][$i]['host'] = '82.202.199.34';

Создадим еще одну базу. Для этого над списком БД нажмите кнопку «Создать БД».

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

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

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

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

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

Необходимый минимум для связи с сервером

Чтобы сервером можно было управлять со своего домашнего компьютера, нам понадобится настроить SSH — программу для безопасной связи между компьютерами по сети. Так как почти все серверы в интернете работают на линуксе без графической оболочки, команды для управления будем вводить в терминале (или командной строке, кому какое название больше нравится).

Перед тем как продолжить, проверяем, что у нас работает доступ к серверу по SSH:

Как установить базу данных на сервер и начать с ней работать

Базу данных необязательно устанавливать на сервер — на домашнем компьютере она тоже будет работать. Самый простой способ это сделать — поставить виртуальную машину с Ubuntu и установить базу там. Единственный минус — удалённо поработать с такой базой будет сложно, но для тренировки и изучения SQL-запросов этого хватит.

Экспорт, Импорт

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

Ввести пароль пользователя.

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

Для импорта сначала загружаете дамп на сервер. Дамп должен быть в формате .sql Ниже показано импорт того же файла который вы прежде экспортировали.

Как установить и использовать MySQL Workbench

Что за инструмент MySQL Workbench и как с ним работать: как создавать таблицы, добавлять в них поля и указывать их свойства, а также как экспортировать базу данных

Создаём новую базу

Последнее, что нам осталось сделать, — создать новую базу данных. 

Все команды в MySQL называются запросами и пишутся внутри её собственной командной строки. Для перехода в неё пишем команду mysql -u root:

Как установить базу данных на сервер и начать с ней работать

У нас поменялся внешний вид приветствия в командной строке: вместо имени пользователя и текущей папки мы видим строку mysql> — это значит, что мы сейчас общаемся с базой данных и она готова принимать и выполнять команды.Создадим новую базу с названием thecodeDB командой CREATE DATABASE:

Как установить базу данных на сервер и начать с ней работать

Обратите внимание на точку с запятой в конце команды — без неё база данных не поймёт, что запрос закончился, и будет ждать продолжения:

Читайте также:  Будьте в курсе: освоение основ ошибок сервера и их устранение
Как установить базу данных на сервер и начать с ней работать

Убедимся, что база создана, — выполним команду SHOW DATABASES;

Как установить базу данных на сервер и начать с ней работать

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

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

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

Устанавливаем базу данных

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

Для установки обеих частей выполним команду apt install mysql-server mysql-client. Сервер соберёт данные об установке и скажет, что ему понадобится около 250 мегабайт на диске — для установки нужно будет ввести английскую букву «y» и нажать энтер:

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

Когда установка закончится, снова проверим, знает ли сервер о том, что у него теперь есть MySQL, командой mysql -V:

Как установить базу данных на сервер и начать с ней работать

Сервер ответил, что у нас установлена версия 8.0.29, — это значит, что мы всё сделали правильно.

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

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

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

 drop database my_db_cli;

Через phpMyAdmin

Выбираем нужную БД, переходим на вкладку «Операции» и нажимаем «Удалить базу данных».

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

Работа с командой UPDATE — как обновить данные в таблице MySQL

9 подробных примеров о том, как обновить данные в MySQL с помощью UPDATE.

Как создавать таблицы в MySQL (Create Table)

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

Сброс пароля root в MySQL

3 простых способа сброса пароля для root-пользователя в MySQL

Создание нового пользователя и настройка прав в MySQL

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

Подготовка системы

Перед установкой MySQL сервер нужно подготовить: подключиться к нему по SSH и настроить брандмауэр с помощью UFW.

Подключение по SSH

Для подключения по SSH в терминале локальной машины введите:

ssh root@server_ip

Пароль для root-пользователя, который требуется при аутентификации, можно найти на вкладке Консоль.

Настройка брандмауэра в Ubuntu

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

Обновите индекс пакетов:

sudo apt update

Установите утилиту UFW для настройки брандмауэра:

sudo apt install ufw

Проверьте список профилей UFW:

sudo ufw app list

В списке должен быть указан OpenSSH:

Available applications: OpenSSH

Разрешите подключения по SSH:

sudo ufw allow OpenSSH
sudo ufw enable

Убедитесь, что брандмауэр активен, и включены профили OpenSSH:

sudo ufw status

Вывод будет выглядеть так:

Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6) 

Теперь можно переходить к установке и настройке MySQL на облачном сервере.

Установить MySQL на Ubuntu 20.04 можно через пакет:

sudo apt install mysql-server

На момент публикации инструкции по умолчанию ставится версия 8.0.23.

Вы можете проверить установленную версию:

mysql --version

Тестирование MySQL

Посмотрите статус MySQL:

systemctl status mysql

В выводе должен быть индикатор зеленого цвета и статус active:

● mysql.service - MySQL Community Server Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled) Active: active (running) since Mon 2021-03-22 09:57:07 UTC; 2h 39min ago Main PID: 2630 (mysqld) Status: "Server is operational" Tasks: 38 (limit: 1107) Memory: 331.4M CGroup: /system.slice/mysql.service └─2630 /usr/sbin/mysqld

По какой-то причине сервис может быть не активен. В таком случае запуск MySQL в Ubuntu происходит через команду:

sudo systemctl start mysql
sudo mysqladmin version -u root -p

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

mysqladmin Ver 8.0.23-0ubuntu0.20.04.1 for Linux on x86_64 ((Ubuntu))
Copyright (c) 2000, 2021, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Server version	8.0.23-0ubuntu0.20.04.1
Protocol version	10
Connection	Localhost via UNIX socket
UNIX socket	/var/run/mysqld/mysqld.sock
Uptime:	2 hours 47 min 34 sec
Threads: 2 Questions: 28 Slow queries: 0 Opens: 141 Flush tables: 3 Open tables: 60 Queries per second avg: 0.002

Как создать первичные и внешние ключи MySQL

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

Создание облачного сервера

Создать облачный сервер с операционной системой Ubuntu 20.04 можно в Облачной платформе Selectel.

Читайте также:  Bitrix vm my cnf

Откройте панель управления, перейдите в раздел Серверы и нажмите Создать сервер.

Как установить и настроить MySQL в Ubuntu 20.04

В качестве источника выберите в списке Ubuntu 20.04.

Как установить и настроить MySQL в Ubuntu 20.04

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

Как установить и настроить MySQL в Ubuntu 20.04

Insert в MySQL — добавление данных в таблицу

10 способов использования команды Insert в MySQL.

ALTER TABLE — изменение таблицы в SQL

Рассказываем о команде ALTER TABLE и учим вносить с ее помощью изменения в таблицы и столбцы.

Удаление MySQL

Если по какой-то причине вам нужно удалить MySQL из Ubuntu 20.04, сначала остановите сервисы:

sudo systemctl stop mysql

Удалите пакеты MySQL:

sudo apt purge mysql-server mysql-client mysql-common mysql-server-core-* mysql-client-core-*

Удалите всех пользователей:

sudo deluser --remove-home mysql
sudo delgroup mysql

Удалите файлы базы данных, конфигурационные файлы и логи:

sudo rm -rf /etc/mysql /var/lib/mysql /var/log/mysql

Удалите оставшиеся зависимости:

sudo apt-get autoremove
sudo apt-get autoclean

Подготовка

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

Что понадобится

Чтобы всё получилось, нам будут нужны:

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

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

Настройка аутентификации и управление пользователями

Аутентификация по паролю

Для root-пользователя аутентификация в MySQL происходит с использованием плагина auth_socket. Чтобы при подключении запрашивался пароль, нужно изменить плагин.

Войдите в оболочку MySQL:

sudo mysql

Посмотрите, какой плагин используется:

mysql> SELECT user,authentication_string,plugin,host FROM mysql.user;

Для пользователя root используется auth_socket:

Как установить и настроить MySQL в Ubuntu 20.04

Назначьте пользователю root новый плагин caching_sha2_password. Также установите пароль того уровня надежности, который вы задали ранее (на шаге Базовая настройка MySQL) — это может быть, например, тот же самый пароль. Введите его вместо password:

mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'password';
mysql> FLUSH PRIVILEGES;

Проверьте, что для пользователя root плагин изменился на caching_sha2_password:

mysql> SELECT user,authentication_string,plugin,host FROM mysql.user;

Закройте командную строку MySQL:

mysql> exit

Дополнительный пользователь (опционально)

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

Если вы установили аутентификацию по паролю, изменилась команда для подключения к консоли MySQL:

mysql -u root -p

Если у вас не установлена аутентификация по паролю, то для входа в MySQL используйте:

sudo mysql

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

mysql> CREATE USER 'new_user'@'localhost' IDENTIFIED BY 'password';

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

mysql> GRANT ALL PRIVILEGES ON database_name.* TO 'new_user'@'localhost';

Закройте консоль MySQL:

mysql> exit

Как установить MySQL на Windows

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

Что дальше

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

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

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

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

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

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

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

 GRANT ALL PRIVILEGES ON my_db_cli.* TO 'user_cli'@'%' WITH GRANT OPTION;

Через phpMyAdmin

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

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

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

После создания пользователя сразу откроется экран настройки полномочий. Мы хотим выдать права только на определенную БД, поэтому перейдем на вкладку «База данных» и выберем нужную базу.

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

На следующем экране нужно указать привилегии. Мы хотим дать полный доступ к базе, поэтому выберем пункт «Отметить все».

Привилегии
 mysql -u user_cli -h 82.202.199.34 -p

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

 use my_db_gui;
 ERROR 1044 (42000): Access denied for user 'user_cli'@'%' to database 'my_db_gui'

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

 use my_db_cli;
create table t(id int);

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

Как установить и настроить MySQL в Ubuntu 20

MySQL — это реляционная СУБД, которая использует язык запросов SQL. В инструкции мы рассмотрим, как запустить MySQL на Ubuntu 20.04. Для этого нам потребуется облачный сервер.

Заключение

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

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