- Sergey Danielyan
- Правильная установка и настройка MySQL в Linux
- Установка MySQL
- Настройка сервера
- MySQL
- Содержание
- Версии MySQL в Ubuntu
- Установка
- Настройка
- Доступ к серверу из сети
- Кодировки
- Администрирование
- Установка root пароля
- Восстановление забытого пароля для root’a
- Отключение и включение автозагрузки сервиса
- MySQL Workbench
- Установка и настройка MySQL в Ubuntu 20.04
- Создание облачного сервера
- Подготовка системы
- Подключение по SSH
- Настройка брандмауэра в Ubuntu
- Установка MySQL
- Начальная настройка MySQL
- Настройка аутентификации и управление пользователями
- Аутентификация по паролю
- Дополнительный пользователь (опционально)
- Тестирование MySQL
- Удаление MySQL
- Установка MySQL в Ubuntu 20.04
- Установка MySQL 8 в Ubuntu
- Установка MySQL 5.7 в Ubuntu
- Настройка mysql в Ubuntu
- Удаление MySQL в Ubuntu
- Выводы
Sergey Danielyan
Правильная установка и настройка MySQL в Linux
Эта статья, по замыслу, должна служить пошаговым руководством по корректной настройки MySQL сервера в Linux в общем и в CentOS в частности, начиная от подготовки системы и заканчивая настройкой прав пользователей.
В этот раз текста будет минимум — только команды.
Установка MySQL
Проверяем, установлен ли MySQL сервер
Если установлен, шаги по установке можете пропустить, хотя ознакомиться я все же советую с ними.
Существуют следующие основные пакеты связанные с mysql:
- mysql — клиент mysql
- mysql-server — сервер mysql
- mysql-devel — для разработки и подключения библиотек и хидеров mysql
- mysql-connector-java — JDBC коннектор (используется, например, в EJBCA)
sudo yum install mysql mysql-server mysql-devel mysql-connector-java
Теперь надо установить сервер mysql на запуск в определенные runlevel‘ы (2, 3 и 5):
Если кто забыл соответствие цифрового значения runlevel‘а символьному:
Стартуем демон mysql:
Настройка сервера
Теперь пора настроить сервер. Начнем с пользователей.
Вот состояние таблицы user до начала действий с ней:
mysql -u root
> use mysql
> select host,user from user;
5 rows in set (0.00 sec)
> quit
Как видете, безопасность на уровне плинтуса. Хорошо хоть, что анонимного пользователя нет.
Для настройки базовых вещей в сервере, запустим настройку сервера через mysql_secure_installation. На время этой установки, пароль будет security. Ваш же пароль, как понимаете, должен отличаться.
Запустится скрипт, с запросами на то или иное действие. Вот ответы:
Skip root password for root
Мы еще не устанавливали пароль для root, поэтому при запуске скрипта и запросе пароля для root , просто нажмите Enter .
Install new password for root: security
А вот тут можно установить пароль для root
Do remove an anonymous user
На вопрос о том, удалить ли анонимного пользователя, отвечаем да
Do not disallow remote connections
Не запрещаем коннект к нашему северу с удаленных серверов (если, конечно, эта опция вам нужна, в другом случае, запретите ее)
Do remove a test database
Тестовая база нам не нужна — удаляйте ее
Do reload the privileges
Перегрузим привилегии для их активации
Теперь для всех root пользователей установлен пароль.
Если в ходе этой конфигурации вы не установили пароль для root , можете сделать это так:
SET PASSWORD FOR ‘root’@’localhost’ = PASSWORD(‘security’);
SET PASSWORD FOR ‘root’@’localhost.localdomain’ = PASSWORD(‘security’);
SET PASSWORD FOR ‘root’@’127.0.0.1’ = PASSWORD(‘security’);
UPDATE mysql.user SET Password = PASSWORD(‘security’) WHERE user = ‘root’;
Если же вы не запускали конфигурацию через mysql_secure_installation или не хотите этого делать по каким-то другим причинам, следующие команды удалят any пользователей:
DROP USER »@’localhost’;
DROP USER »@’localhost.localdomain’;
Также, пароль для IPv6 localhost (@::1) можно установить таким образом:
Близится финал нашего действия. Осталось две вещи:
- открыть порты для mysql:
sudo iptables -I INPUT -p tcp —dport 3306 -m state —state NEW,ESTABLISHED -j ACCEPT
sudo iptables -I OUTPUT -p tcp —sport 3306 -m state —state ESTABLISHED -j ACCEPT
выставить кодировку UTF-8 по-умолчанию — файл /etc/my.cnf :
[mysqld]
init_connect=‘SET collation_connection = utf8_unicode_ci’
character-set-server = utf8
collation-server = utf8_unicode_ci
[client]
default-character-set = utf8
Источник
MySQL
Содержание
MySQL — свободная СУБД для малых и средних приложений. Входит в состав LAMP и XAMPP.
Версии MySQL в Ubuntu
Установка
MySQL есть в репозиториях Ubuntu. Он разбит на несколько пакетов.
Для того чтобы установить MySQL сервер выполните команду:
При установке конфигурационный скрипт запросит пароль для администратора (root) базы данных.
Для того чтобы установить консольный клиент MySQL выполните команду:
Для того чтобы установить модуль для работы с MySQL в PHP выполните команду:
Настройка
Конфигурация сервера MySQL содержится в файле /etc/mysql/my.cnf.
Доступ к серверу из сети
По умолчанию сервер MySQL принимает соединения только с локальной машины. Для того, чтобы разрешить подключаться к нему с других машин замените строку
Кодировки
По-умолчанию в Ubuntu MySQL устанавливается с кодировкой latin1 . В этом можно убедиться посмотрев вывод запроса:
В связи с этим, даже используя при работе с сервером команду
и используя при создании таблиц
невозможно добиться полной поддержки кодировки utf8:
Кодировка по-умолчанию все равно останется latin1, что неудобно и может привести к ошибкам.
Чтобы сервер сразу загружался с нужной кодировкой, необходимо отредактировать файл /etc/mysql/my.cnf:
В секцию [mysqld] добавьте следующие строки:
Так же желательно установить кодировку для клиента и mysqldump. Для этого в секциях [client] и [mysqldump] необходимо добавить строчку:
Перезагрузите сервер MySQL:
После этого список переменных будет выглядеть так:
Администрирование
Установка root пароля
Восстановление забытого пароля для root’a
Схожая проблема возникает если не задать пароль при установке MySQL, в этом случае mysql использует плагин unix-socket.
Запустите mysqld с параметрами —skip-grant-tables —user=root :
Если команда не сработает, добавьте строку « skip-grant-tables » в секцию « [mysqld] » файла /etc/mysql/mysql.conf.d/mysqld.cnf . Затем выполните sudo service mysql restart . После выполнения операций удалите эту строку.
Подключитесь к MySQL-серверу командой:
Обновите пароль для root’a:
Для MySQL версий mysqldump . Основные ее параметры приведены в таблице:
Параметр | Описание | Пример |
---|---|---|
-u | Пользователь, от лица которого будет производится дамп баз данных. | -uroot |
-p |
-p
Отключение и включение автозагрузки сервиса
Начиная с версии Ubuntu 15.04 отключение и включение сервисов возможно одной командой, без редактирования конфигов. В примерах команд ниже слово «SERVICE» следует заменить на «mysql».
Узнать стоит ли сервис в автозагрузке:
Убрать сервис из автозагрузки в Ubuntu-16.04:
Добавить сервис в автозагрузку в Ubuntu-16.04:
MySQL Workbench
MySQL Workbench – инструмент для визуального проектирования баз данных. MySQL Workbench существует в двух вариантах:
Источник
Установка и настройка MySQL в Ubuntu 20.04
MySQL — это реляционная СУБД, которая использует язык запросов SQL. В инструкции мы рассмотрим, как запустить MySQL на Ubuntu 20.04. Для этого нам потребуется облачный сервер.
Создание облачного сервера
Создать облачный сервер с операционной системой Ubuntu 20.04 можно в Облачной платформе Selectel.
Откройте панель управления, перейдите в раздел Серверы и нажмите Создать сервер.
В качестве источника выберите в списке Ubuntu 20.04.
Сконфигурировать сервер можно любым образом, подробнее о настройках в Базе знаний.
Чтобы в дальнейшем можно было подключиться к серверу извне, создайте плавающий IP-адрес. Для этого в выпадающем списке Сеть выберите Плавающий IP-адрес.
Подготовка системы
Перед установкой MySQL сервер нужно подготовить: подключиться к нему по SSH и настроить брандмауэр с помощью UFW.
Подключение по SSH
Для подключения по SSH в терминале локальной машины введите:
IP-адрес сервера находится на вкладке Порты на странице сервера.
Пароль для root-пользователя, который требуется при аутентификации, можно найти на вкладке Консоль.
Настройка брандмауэра в Ubuntu
После подключения настройте брандмауэр так, чтобы он разрешал подключения к серверу по SSH.
Обновите индекс пакетов:
Установите утилиту UFW для настройки брандмауэра:
Проверьте список профилей UFW:
В списке должен быть указан OpenSSH:
Разрешите подключения по SSH:
Убедитесь, что брандмауэр активен, и включены профили OpenSSH:
Вывод будет выглядеть так:
Теперь можно переходить к установке и настройке MySQL на облачном сервере.
Установка MySQL
Установить MySQL на Ubuntu 20.04 можно через пакет:
На момент публикации инструкции по умолчанию ставится версия 8.0.23.
Вы можете проверить установленную версию:
Начальная настройка MySQL
Запустите скрипт для повышения безопасности MySQL:
Система запросит разрешение на установку плагина валидации паролей. Этот плагин проверяет безопасность пароля и позволяет пользователю ставить только достаточно защищенные пароли.
Если вы хотите установить этот плагин, введите в консоли y или Y.
Есть три уровня защищенности пароля: LOW (0), MEDIUM (1) и STRONG (2). Чтобы задать уровень пароля, нажмите соответствующую цифру, например, 2 для сильного пароля. Даже если вы на предыдущем шаге не установили плагин, система запросит вас поставить пароль для пользователя root — введите его два раза.
Если плагин установлен, будет показан уровень надёжности пароля Estimated strength of the password.
Далее система задаст ряд вопросов: хотите ли вы использовать этот пароль для продолжения работы, удалить ли всех анонимных пользователей, запретить удаленно подключаться как root, удалить тестовую БД и доступ к ней, перезагрузить таблицы с привилегиями. Вы можете ответить на все эти вопросы положительно: y, Y или Enter.
Если в выводе появится All done!, то пароль для root успешно настроен.
По умолчанию вход в MySQL в Ubuntu не будет происходить по паролю. Чтобы настроить подключение через пароль, следуйте инструкции ниже.
Настройка аутентификации и управление пользователями
Аутентификация по паролю
Для root-пользователя аутентификация в MySQL происходит с использованием плагина auth_socket. Чтобы при подключении запрашивался пароль, нужно изменить плагин.
Войдите в оболочку MySQL:
Посмотрите, какой плагин используется:
Для пользователя root используется auth_socket:
Назначьте пользователю root новый плагин caching_sha2_password. Также установите пароль того уровня надежности, который вы задали ранее (на шаге Базовая настройка MySQL) — это может быть, например, тот же самый пароль. Введите его вместо password:
Некоторые приложения для работы с MySQL (например, phpMyAdmin) не будут надежно работать с плагином caching_sha2_password. В таком случае лучше установить другой плагин — mysql_native_password.
Проверьте, что для пользователя root плагин изменился на caching_sha2_password:
Закройте командную строку MySQL:
Дополнительный пользователь (опционально)
Вы можете создать дополнительного пользователя для работы с MySQL.
Если вы установили аутентификацию по паролю, изменилась команда для подключения к консоли MySQL:
Если у вас не установлена аутентификация по паролю, то для входа в MySQL используйте:
Создайте нового пользователя и поставьте пароль:
Если вы хотите дать пользователю полный доступ к определенной базе данных, используйте:
Закройте консоль MySQL:
Тестирование MySQL
Посмотрите статус MySQL:
В выводе должен быть индикатор зеленого цвета и статус active:
По какой-то причине сервис может быть не активен. В таком случае запуск MySQL в Ubuntu происходит через команду:
Если вы хотите дополнительно проверить работу MySQL, используйте инструмент mysqladmin — он нужен для администрирования MySQL-сервера. Подключитесь к MySQL и запросите пароль от root:
Если вывод выглядит подобным образом, то MySQL успешно установлена и готова к использованию:
Удаление MySQL
Если по какой-то причине вам нужно удалить MySQL из Ubuntu 20.04, сначала остановите сервисы:
Удалите пакеты MySQL:
Удалите всех пользователей:
Удалите файлы базы данных, конфигурационные файлы и логи:
Источник
Установка MySQL в Ubuntu 20.04
MySQL — это одна из самых популярных систем управления базами данных, которая применяется почти везде, начиная от различных предприятий и промышленности и заканчивая организацией работы веб-сайтов.
Сейчас существует несколько версий MySQL. Непосредственно MySQL, разрабатываемая компанией Oracle и свободный форк от основного разработчика MySQL — MariaDB. Имя MairaDB программа получила в честь первой дочери программиста, также как и MySQL в честь имени второй. В большинстве дистрибутивов Linux используется MariaDB, в том числе и в Ubuntu. Но в этой статье давайте рассмотрим установку именно MySQL в Ubuntu 20.04.
Установка MySQL 8 в Ubuntu
Программа и все необходимые компоненты есть в официальных репозиториях, поэтому установить её не составит труда. Для установки из официальных репозиториев сначала обновите списки пакетов:
sudo apt update
Затем установите необходимые пакеты:
sudo apt install mysql-server mysql-client
На данный момент в репозиториях Ubuntu 20.04 есть уже версия Mysql 8.20. Вы можете проверить установленную версию такой командой:
Кроме того, желательно проверить, запущенна ли служба MySQL:
sudo systemctl status mysql
Вы должны увидеть зеленую надпись Active, Running и версию программы, которую устанавливали.
Установка MySQL 5.7 в Ubuntu
Если вам нужна версия 5.7, то её в репозиториях нет, но вы можете получить эту версию из репозитория разработчика. Если в системе уже есть более новая версия, её надо полностью удалить:
sudo apt remove —autoremove mysql-server mysql-client
Также удалите каталог с базами данных MySQL они не совместимы со старой версией:
sudo rm -Rf /var/lib/mysql
Для установки репозитория скачайте этот пакет:
sudo wget https://dev.mysql.com/get/mysql-apt-config_0.8.12-1_all.deb
Затем установите его:
sudo dpkg -i mysql-apt-config_0.8.12-1_all.deb
В процессе установки программа попросит выбрать дистрибутив. Если у вас Ubuntu 20.04 или выше, выбирайте версию для Ubuntu 18.04 — bionic:
Затем выберите MySQL Server and Cluster:
После этого останется выбрать нужную версию MySQL, например 5.7:
После этого обновите списки репозиториев и посмотрите какие версии MySQL доступны:
sudo apt update
sudo apt-cache policy mysql-server
Осталось установить установить mysql 5.7 в Ubuntu:
sudo apt install mysql-server=5.7.31-1ubuntu18.04 mysql-community-server=5.7.31-1ubuntu18.04 mysql-client=5.7.31-1ubuntu18.04
В процессе установки программа запросит пароль для root пользователя:
После этого вы снова можете посмотреть версию:
Настройка mysql в Ubuntu
Перед тем как вы сможете полноценно использовать только что установленную базу данных, необходимо выполнить ее первоначальную настройку. Для этого был разработан специальный скрипт, выполните его:
На первом шаге настраивается плагин валидации пароля. Чтобы его включить нажмите Y, или его можно не включать. Затем надо задать сложность пароля, который позволит установить этот плагин. Здесь 0 означает слабый пароль, а 2 — сложный. Когда плагин будет настроен введите пароль root и подтвердите, что хотите использовать именно его:
Введите Y для отключения анонимного доступа к MySQL, затем ещё раз Y чтобы запретить подключаться к базе от имени root удаленно:
Снова Y, чтобы удалить тестовую базу данных. Затем, обновите привилегии для пользователей:
После завершения настройки вы можете подключиться к пользователя root к серверу баз данных из командной строки:
sudo mysql -u root
Здесь нам необходимо создать пользователя, от имени которого мы будем использовать базу данных, а также саму базу данных. Для этого воспользуемся командами SQL. Сначала создаем базу данных:
mysql> CREATE DATABASE testDB;
Далее создадим пользователя:
mysql> CREATE USER ‘my_user’@’localhost’ IDENTIFIED BY ‘password’;
Слова my_user и password нужно заменить на свои имя пользователя и пароль. Дальше нужно дать права пользователю на управление этой базой данных:
mysql> GRANT ALL PRIVILEGES ON testDB.* TO ‘my_user’@’localhost’
Или вы можете дать права только на несколько инструкций:
mysql> GRANT SELECT,UPDATE,DELETE ON testDB.* TO ‘my_user’@’localhost’;
Если какую-либо инструкцию нужно запретить, удалите ее:
mysql> REVOKE UPDATE ON testDB.* FROM ‘my_user’@’localhost’;
После завершения работы с правами нужно их обновить:
mysql> FLUSH PRIVILEGES;
Чтобы убедиться что нет никого лишнего, вы можете вывести список пользователей:
mysql> SELECT user,host FROM mysql.user;
Также вы можете посмотреть полномочия для нужного пользователя:
mysql> SHOW GRANTS FOR ‘my_user’@’localhost’;
Теперь установка MySQL Ubuntu 20.04 полностью завершена и вы можете использовать эту базу данных для решения своих задач.
Удаление MySQL в Ubuntu
Чтобы удалить mysql Ubuntu 20.04 понадобиться немного больше команд чем для удаления простого пакета. После удаления основных пакетов в системе остается еще много файлов. Мы рассмотрим как удалить все.
Сначала остановите сервисы:
sudo systemctl stop mysql
sudo killall -KILL mysql mysqld_safe mysqld
Удалите основные пакеты и их зависимости:
sudo apt -y purge mysql-server mysql-client
sudo apt -y autoremove —purge
sudo apt autoclean
Удалите пользователя mysql и остатки программы в системе:
deluser —remove-home mysql
sudo delgroup mysql
rm -rf /etc/apparmor.d/abstractions/mysql /etc/apparmor.d/cache/usr.sbin.mysqld /etc/mysql /var/lib/mysql /var/log/mysql* /var/log/upstart/mysql.log* /var/run/mysqld
updatedb
Удалите все логи подключений к mysql из терминала:
sudo find / -name .mysql_history -delete
Теперь ваша система полностью очищена от MySQL.
Выводы
В этой статье мы рассмотрели как выполняется установка MySQL в Ubuntu 20.04. Как видите, это не очень трудно, хотя и требует некоторых знаний и немного времени на то, чтобы со всем разобраться. Надеюсь, эта информация была для вас полезной.
Источник