Установка MySQL - mySql 8.4 MySQL Community Downloads
Если в официальном репозитории Ubuntu нет версии MySQL 8.4, можно установить её из официального репозитория MySQL:
- Скачать файл с репозиторием на сайте dev.mysql.com/downloads/repo/apt/. Например, для Ubuntu 24.04 доступен пакет
mysql-apt-config_0.8.34-1_all.deb
- Добавить конфигурацию репозитория в систему с помощью команды
sudo dpkg -i _/PATH/version-specific-package-name_.deb
sudo dpkg -i mysql-apt-config_0.8.34-1_all.deb
- Выбрать версию MySQL в интерфейсе репозитория и сохранить конфигурацию.
sudo dpkg-reconfigure mysql-apt-config
- Обновить систему для нового репозитория:
sudo apt update
- Установить MySQL с помощью команды
sudo apt install -y mysql-server
[!danger] В процессе установки обязательно задать и запомнить пароль для
root
MySQL автоматически запустится. Можно проверить статус службы с помощью команды:
sudo systemctl status mysql
Проверить установленную версию можно командой:
mysql --version
sudo mysql_secure_installation
Он выполняет несколько шагов для защиты вашей базы данных от потенциальных угроз.
[!i] Давайте разберем каждый шаг подробно:
- При первом запуске инструмент попросит установить плагин валидации паролей. Потребуется выбрать тот уровень сложности пароля, который вам подходит. Для этого введите соответствующую цифру (1 или 2), а далее продолжите установку, согласно инструкции.
- Установка пароля для root пользователя. На этом этапе скрипт запросит вас ввести текущий пароль для root пользователя MySQL. Если он еще не установлен, оставьте поле пустым и нажмите Enter. Затем он предложит вам установить новый пароль для root. Пароль для root пользователя дает полный доступ ко всем базам данных MySQL, поэтому он должен быть сложным и безопасным.
- Удаление анонимных учетных записей. По умолчанию MySQL устанавливает анонимные учетные записи, которые позволяют входить в систему без указания имени пользователя или пароля. Это представляет уязвимость безопасности, поэтому скрипт предложит удалить эти учетные записи.
- Отключение удаленного входа для root пользователя. Для повышения безопасности рекомендуется отключить удаленный доступ к root пользователю MySQL. Это означает, что root пользователь может входить в систему только локально, с сервера MySQL, а не удаленно через сеть.
- Удаление тестовых баз данных и тестовых записей. MySQL устанавливает некоторые тестовые базы данных и записи по умолчанию, которые необходимы для тестирования, но представляют угрозу безопасности, если они остаются в продакшен среде. Скрипт предложит удалить их.
- Перезагрузка привилегий (RELOAD PRIVILEGES). После завершения всех настроек скрипт перезагрузит привилегии MySQL, чтобы убедиться, что все изменения вступают в силу. Именно привилегии определяют, какие действия могут выполнять пользователи с объектами базы данных.
[!info] После установки рекомендуется сменить пароль для
root
.Так как пока вы не смените свой
root
пароль, вы не сможете воспользоваться никакими привилегиями суперпользователя, даже если вы вошли в систему какroot
.
Входим в оболочку mysql с пользователем "root" и вводим пароль:
sudo mysql -u root -p
полная команда для входа:
mysql -u 'пользователь' -p 'пароль' -h 'хост_или_ip_сервера_MySQL'
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 4 Server version: 5.7.32 MySQL Community Server (GPL)
Copyright (c) 2000, 2020, 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.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
при необходимости даем команду и вводим новый паспорт для root
:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '_new_password_';
Вот несколько полезных советов, которые следует помнить при использовании клиента mysql:
-
Клиентские команды (например,
help
,quit
иclear
) и ключевые слова в операторах SQL (например, SELECT, CREATE TABLE и INSERT) не чувствительны к регистру. -
Имена столбцов чувствительны к регистру. Имена таблиц чувствительны к регистру на большинстве Unix-подобных платформ, но не чувствительны к регистру на платформах Windows. Чувствительность к регистру при сравнении строк зависит от используемой сортировки символов. В целом, рекомендуется рассматривать все идентификаторы (имена баз данных, имена таблиц, имена столбцов и т. д.) и строки как чувствительные к регистру. Подробности см. в разделах Чувствительность к регистру идентификаторов и Чувствительность к регистру при поиске строк.
-
Все команды заканчиваются точкой с запятой. Вы можете ввести свои SQL-инструкции в нескольких строках, нажав
Enter
в середине. Ввод точки с запятой (;
), за которой следуетEnter
, завершает инструкцию SQL и отправляет ее на сервер для выполнения; то же самое происходит, когда инструкция заканчивается на\g
или\G
(с последним возвращаемые результаты отображаются вертикально). Однако клиентским командам (например,help
,quit
иclear
) не требуется ограничитель.
Чтобы отключиться от сервера MySQL, введите QUIT
или \q
в командной строке клиента:
mysql> QUIT
смотрим версию сервера и дату
SELECT VERSION(), CURRENT_DATE;
смотрим все базы:
SHOW DATABASES;
создаём новую базу:
CREATE DATABASE имя_базы_данных;
создаём нового пользователя:
CREATE USER 'имя_пользователя'@'хост_или_IP_машины' IDENTIFIED BY 'пароль_пользователя';
при указании хоста для подключения к MySQL серверу можно не указывать @'хост_или_IP_машины' тогда по умолчанию будет символ процента (%) и создаваемый пользователь может соединяться с сервером MySQL с любого IP адреса или хоста.
Задаёт права пользователя для выполнения любых действий с созданной базой данных:
GRANT ALL PRIVILEGES ON имя_базы_данных.* TO 'имя_пользователя'@'хост_или_IP_машины';
Опция ALL указывает на то, что пользователю разрешаются любые действия с определённой БД. Полный список прав, которые можно выдавать пользователям с помощью команды GRANT.
Cоздаём суперюзера, т.е. обладающего глобальными привилегиями для осуществления различных действий со всеми БД на сервере:
GRANT ALL PRIVILEGES ON *.* TO 'имя_пользователя'@'хост_или_IP_машины';
Очищаем кэш MySQL сервера после установки и изменений привилегий:
FLUSH PRIVILEGES;
Выбор базы данных для работы:
USE имя_базы_данных;
смотрим текущего пользователя и его текущую выбранную базу данных:
SELECT USER(), DATABASE();
Удаляем базу данных:
DROP DATABASE имя_базы_данных;
удаляем пользователя:
DROP USER IF EXISTS имя_пользователя;
выводим на экран список всех существующих на текущем MySQL сервере пользователей:
SELECT User FROM mysql.user;
Если нужно посмотреть хосты, с которых пользователи могут коннектиться к серверу, и список привилегий:
SELECT User, Host, Grant_priv FROM mysql.user;
импортируем дамп базы данных на сервер MySQL из файла:
mysql -u 'имя_пользователя' -p'пароль' 'имя_базы_данных' < 'путь_и_имя_файла_дампа'
импортируем базу данных из архива:
gunzip > 'имя_файла_архива.sql.gz' | mysql -u 'user' -p'пароль' 'имя_базы_данных'
экспортируем базу данных с сервера MySQL в файл дампа:
mysqldump -u имя_пользователя -p имя_базы_данных > путь_и_имя_файла_дампа
выходим из консоли mysql:
exit
END