CentOS 7 установка MySQL
После выхода операционной системы CentOS версии 7 с портов «исчезла» БД MySQL. Как так? MySQL является очень популярной системой управления базами данных для веб-приложений и серверов. Компания Oracle изменила лицензионное соглашение и многие группы начали мигрировать на другие продукты. Не стала исключением и CentOS и перешла на сервер базы данных MariaDB. Это копия MySQL, но с моделью лицензирования GPL.Если вы все же предпочитаете MySQL — эта статья для вас.
Итак, если после установки CentOS вы захотели поставить MySQL вы это делаете стандартным способом:
yum install mysql-server
Но в ответ получаете ошибку:
No package mysql-server available.
Конечно если у вас качественный колокейшен в киеве вы можете обратиться в службу поддержки и они решат эту ошибку. Но если вам нужно сделать это самостоятельно — несколько простых шагов помогут в этом.
Инсталляция MySQL на CentOS 7 и выше
1. Первым делом нужно получить и добавить репозитарий MySQL
wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm rpm -ivh mysql-community-release-el7-5.noarch.rpm
2. Обновляем наши новые данные в репозитариях:
yum update
3. Устанавливаем MySQL Server
yum install mysql-server
Ура! Наконец-то mysql нашелся и успешно началась загрузка и установка.
После того, как подтянуться все зависимости нужно запустить mysql
systemctl start mysqld
mysql_secure_installation
И после этого можно настраивать конфигурационный файл по вашим требованиям.
Установка MySQL CentOS 7
MySQL — это одна из самых популярных систем управления базами данных, используемых как на производстве, так и для хранения данных веб-сайтов и приложений. Однако после перехода MySQL в собственность Oracle, вместо нее везде по умолчанию используется MariaDB. Это достойная замена, если вам нужна только базовая функциональность, но если вы хотите получить все тонкости и возможности MySQL, вам нужна именно версия от Oracle.
Но из официальных репозиториев MySQL была удалена. Поэтому вам придется искать другие источники. В этой статье мы рассмотрим как выполняется установка MySQL CentOS 7. Причем в версии от Oracle, а не MariaDB.
Подготовка системы
Перед тем как перейти к установке MySQL в CentOS нужно выполнить несколько настроек и проверить все ли правильно в вашей системе. Сначала убедитесь, что у вас установлено имя хоста. Для этого выполните команду:
hostname
$ hostname -f

Первая команда покажет короткое имя хоста, вторая выведет полное имя FQDN. Если все правильно, осталось обновить систему до самой последней версии:
sudo yum update
Установка MySQL в CentOS 7
Как я уже сказал, в официальных репозиториях пакета нет, поэтому вам придется добавить репозиторий сообщества. Вам нужно открыть сайт repo.mysql.com и скачать самую последнюю версию файла репозитория. Например, на данный момент это mysql57-community-release-el7.rpm.
Для установки этой версии вы можете использовать команду:
wget http://repo.mysql.com/mysql57-community-release-el7.rpm
sudo rpm -ivh mysql57-community-release-el7.rpm

Дальше обновите список репозиториев:
sudo yum update
Теперь вам осталось осталась установка mysql centos 7 и запуск самой службы:
sudo yum install mysql-server
$ sudo systemctl start mysqld

Настройка MySQL CentOS 7
По умолчанию MySQL будет слушать локальный хост 127.0.0.1. Если вы хотите, чтобы сервер был доступен из интернета, необходимо изменить несколько настроек в файле /etc/my.cnf. Однако, не рекомендуется делать сервер баз данных доступным через интернет. Чтобы указать внешний ip адрес, который нужно прослушивать используется опция bind_address:
sudo vi /etc/my.cnf
Также в установке параметров по умолчанию есть некоторые настройки, которые могут быть потенциально не безопасными при доступе из внешней сети. Для этого чтобы их устранить запустите скрипт mysql_secure_installation:

Сначала нужно ввести пароль суперпользователя. По умолчанию система генерирует случайный пароль во время установки. Чтобы его посмотреть откройте еще один терминал и выполните:
grep ‘temporary password’ /var/log/mysqld.log

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

Затем укажите что пароль менять не нужно. Отключите анонимных пользователей. Запретите удаленный вход от имени пользователя root:

Удалите тестовые таблицы:

И обновите таблицы привелегий:

Не рекомендуется постоянно работать с базами данных от имени пользователя root. Поэтому нужно создать обычного пользователя. Для этого сначала войдите в консоль управления с правами root:
Утилита, запросит пароль, введите пароль root, который задали на предыдущем этапе, дальше вы сможете выполнять команды mysql:

Давайте создадим пользователя dbuser для базы данных dbase, с паролем password. Вам нужно заменить эти значения на свои. Сначала создаем базу данных:
mysql> create database dbase;
mysql> create user ‘dbuser’@’localhost’ identified by ‘password’;
mysql> grant all on dbase.* to dbuser’ identified by ‘password’;
Дальше создадим первую таблицу в нашей новой базе данных, но перед этим войдем от имени только что созданного пользователя:
mysql -u testuser -p
Переключите на новую базу данных:
mysql> use dbase
Затем создайте таблицу:
create table customers (customer_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, first_name TEXT, last_name TEXT);
Готово. Теперь вы знаете как выполняется установка MySQL CentOS 7. Давайте еще рассмотрим как сбросить пароль в MySQL.
Сброс пароля пользователя root в MySQL
Иногда может случиться что вы забудете пароль пользователя root. Его можно очень просто сбросить. Сначала остановите запущенный экземпляр программы:
sudo systemctl stop mysqld
Затем запустите сервис в безопасном режиме, для этого нужно установить специальную опцию запуска:
systemctl set-environment MYSQLD_OPTS=»—skip-grant-tables»
В этом режиме программа не будет запрашивать пароль для подключения. Подключитесь от имени суперпользователя и измените пароль:
mysql> use mysql;
mysql> update user SET PASSWORD=PASSWORD(«пароль») WHERE USER=’root’;
mysql> flush privileges;
Затем удалите эту переменную:
sudo systemctl unset-environment MYSQLD_OPTS
Осталось снова запустить сервер в обычном режиме:
sudo systemctl start mysqld
Улучшение производительности mysql
Настройка mysql по умолчанию не всегда оптимальна. Учитывая ваши особенности использования баз данных, можно улучшить ее производительность. Скрипт MySQL Tuner написанный на Perl и предоставляет рекомендации по настройке MySQL в зависимости от вашей нагрузки. Перед тем как запускать скрипт, дайте серверу поработать не менее чем 24 часа. Чем дольше будет время работы, тем точнее инструкции.
После запуска вам будет предложено ввести пароль суперпользователя, а затем выведен список рекомендаций по настройке и замечания по безопасности. Это отличная точка для оптимизации сервера.
Удаление mysql
Если вы хотите удалить MySQL CentOS 7, достаточно выполнить такую команду:
sudo yum remove mysql-server
Выводы
В этой статье мы рассмотрели как установить mysql centos 7. Теперь вы можете установить эту программу на своем сервере или домашнем компьютере. Также мы поговорили как выполняется базовая настройка mysql centos 7, поэтому теперь вы сможете получить полностью рабочую систему. Если у вас остались вопросы, спрашивайте в комментариях!
Устанавливаем MySQL8 на Linux CentOS 7
По умолчанию yum install mysql предложит установить mariadb и к тому же версию 5.5. Но если вам нужен всё-так MySQL и восьмой версии, то вам помогут следующие команды:
yum install https://repo.percona.com/yum/percona-release-latest.noarch.rpm percona-release setup ps80 yum install percona-server-server systemctl start mysqld systemctl enable mysqld # mysql -V mysql Ver 8.0.19-10 for Linux on x86_64 (Percona Server (GPL), Release 10, Revision f446c04) Пароль root ищем в /var/log/mysqld.log: cat /var/log/mysqld.log | grep root 2020-05-18T11:50:00.099253Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: jsWdfgbhtxE Меняем пароль mysql -u root -p ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
У вас может возникнуть ошибка при подключении к MySQL из PHP в связи с тем, что в MySQL8 по умолчанию другой плагин авторизации.
Failed to connect to MySQL: (2054) The server requested authentication method unknown to the client
Решается эта проблема указыванием плагина аутентификации mysql_native_password.
ALTER USER 'user_db'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
Можно отключить плагин аутентификации для всех пользователей вызвав mysql_secure_installation, но не стоит этого делать. Не надо root’ом позволять лазить в базу. По умолчанию даже имея пароль рута к базе подключиться из php не удастся. Только с командной строки утилитой mysql. mysql_native_password лучше разрешать только для отдельных пользователей, которым нужно коннектиться к базе из php.
Установка MySQL в CentOS 7
MySQL – это открытая система управления базами данных, которая является частью стека LEMP (Linux, Nginx, MySQL/ MariaDB, PHP/Python/Perl). Для управления данными реляционная СУБД MySQL использует SQL (Structured Query Language).
В системе CentOS 7 обычно используется MariaDB, разработанный и поддерживаемый создателями MySQL форк, предназначенный для замены MySQL. Если вы запустите команду yum install mysql в CentOS 7, вместо MySQL будет установлена система MariaDB.
MariaDB имеет все функции системы MySQL и без проблем заменяет её, так что вы можете использовать MariaDB вместо MySQL, если ваше приложение не привязано именно к MySQL.
Данное руководство поможет установить MySQL 5.7 на сервер CentOS 7.
Требования
- Сервер CentOS 7.
- Пользователь с доступом к sudo.
1: Установка MySQL
Как говорилось ранее, команда yum вместо MySQL устанавливает MariaDB. Чтобы установить MySQL, посетите yum-репозиторий сообщества MySQL и найдите там необходимый пакет. Откройте в браузере:
Обратите внимание: ссылки для загрузки не ведут напрямую к файлам. Вместо этого вы попадаете на страницу, которая приглашает вас войти или зарегистрироваться. Если вы не хотите создавать учётную запись, найдите «No thanks, just start my download», кликните правой кнопкой мыши и скопируйте ссылку на пакет.
Вставьте ссылку в команду:
Примечание: Номер версии может отличаться.
Сохранив rpm-файл, нужно убедиться, что он не повреждён. Для этого загрузите md5sum и сравните контрольную сумму со значением MD5, которое можно найти на сайте.
md5sum mysql57-community-release-el7-9.noarch.rpm
1a29601dc380ef2c7bc25e2a0e25d31e mysql57-community-release-el7-9.noarch.rpm
Примечание: MD5 можно найти под кнопкой Download.
Убедившись в подлинности пакета, вы можете установить его:
sudo rpm -ivh mysql57-community-release-el7-9.noarch.rpm
После этого на сервере появится два дополнительных yum-репозитория MySQL, с помощью которых можно установить MySQL.
sudo yum install mysql-server
Чтобы продолжить, нажмите y. После добавления пакета система предложит принять его GPG-ключ. Нажмите y, чтобы загрузить ключ и закончить установку.
2: Запуск MySQL
Запустите демон MySQL:
sudo systemctl start mysqld
Команда systemctl не показывает вывод некоторых команд. Чтобы убедиться, что демон запущен, введите:
sudo systemctl status mysqld
Если сервер MySQL был запущен, в выводе команды будут строки:
Active: active (running)
[…] Dec 01 19:02:20 centos-512mb-sfo2-02 systemd[1]: Started MySQL Server.
Примечание: Автозапуск MySQL настраивается самостоятельно во время установки. Чтобы отключить автозапуск, введите:
sudo systemctl disable mysqld
Во время установки MySQL генерирует временный пароль для root-пользователя. Найдите его в mysqld.log с помощью команды:
sudo grep ‘temporary password’ /var/log/mysqld.log
2016-12-01T00:22:31.416107Z 1 [Note] A temporary password is generated for root@localhost: mqRfBU_3Xk>r
Запишите пароль, чтобы пройти аутентификацию. Конечно, этот пароль нужно заменить более сложным. Стандартная политика требует, чтобы пароль состоял из 12 символов (включая буквы верхнего и нижнего регистра, цифры и специальные символы).
3: Настройка MySQL
После завершения установки нужно запустить встроенный сценарий безопасности MySQL, который изменяет некоторые опции по умолчанию и блокирует удалённый root-логин. Чтобы запустить сценарий, введите:
Программа запросит root-пароль, который вы получили при установке.
The existing password for the user account root has expired. Please set a new password.
New password:
Введите новый пароль из 12 символов и подтвердите его.
Примечание: Пароль должен содержать минимум один специальный символ, одну цифру, одну букву верхнего и одну нижнего регистра.
Программа оценит ваш новый пароль и сообщит о его надёжности. После этого программа сразу предложит выбрать новый пароль. Поскольку вы выбрали его только что, не нужно этого делать.
Estimated strength of the password: 100
Change the password for root ? ((Press y|Y for Yes, any other key for No) :
После этого сценарий задаст вам ряд вопросов. Чтобы принять данные по умолчанию, можете просто нажать Y и Enter. Сценарий заблокирует анонимных пользователей и удалённый root логин, удалит тестовые таблицы и перезагрузит привилегии.
4: Тестирование MySQL
Теперь нужно убедиться, что установка MySQL прошла успешно.
Попробуйте подключиться к БД с помощью инструмента mysqladmin (это клиент, предназначенный для запуска команд администрирования). Чтобы подключиться к MySQL как root (-u root), ввести пароль (-p) и запросить версию программы, введите команду:
mysqladmin -u root -p version
mysqladmin Ver 8.42 Distrib 5.7.16, for Linux on x86_64
Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Server version 5.7.16
Protocol version 10
Connection Localhost via UNIX socket
UNIX socket /var/lib/mysql/mysql.sock
Uptime: 2 min 17 sec
Threads: 1 Questions: 6 Slow queries: 0 Opens: 107 Flush tables: 1 Open tables: 100 Queries per second avg: 0.043
Это значит, что установка и настройка СУБД MySQL прошла успешно.
Заключение
Теперь вы умеете выполнять базовую установку и настройку MySQL.
Читайте также:
- Защита MySQL и MariaDB на сервере Linux
- Оптимизация запросов и таблиц MySQL и MariaDB