MySQL - это одна из самых популярных систем управления базами данных, используемых как на производстве, так и для хранения данных веб-сайтов и приложений. Однако после перехода MySQL в собственность Oracle, вместо нее везде по умолчанию используется MariaDB. Это достойная замена, если вам нужна только базовая функциональность, но если вы хотите получить все тонкости и возможности MySQL, вам нужна именно версия от Oracle.
Но из официальных репозиториев MySQL была удалена. Поэтому вам придется искать другие источники. В этой статье мы рассмотрим как выполняется установка MySQL CentOS 7. Причем в версии от Oracle, а не MariaDB.
Содержание статьи
- Подготовка системы
- Установка MySQL в CentOS 7
- Настройка MySQL CentOS 7
- Сброс пароля пользователя root в MySQL
- Улучшение производительности mysql
- Удаление mysql
- Выводы
Подготовка системы
Перед тем как перейти к установке 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:
mysql_secure_installation
Сначала нужно ввести пароль суперпользователя. По умолчанию система генерирует случайный пароль во время установки. Чтобы его посмотреть откройте еще один терминал и выполните:
grep 'temporary password' /var/log/mysqld.log
Затем система сообщит, что ваш пароль устарел и нужно его поменять, введите два раза новый пароль:
Затем укажите что пароль менять не нужно. Отключите анонимных пользователей. Запретите удаленный вход от имени пользователя root:
Удалите тестовые таблицы:
И обновите таблицы привелегий:
Не рекомендуется постоянно работать с базами данных от имени пользователя root. Поэтому нужно создать обычного пользователя. Для этого сначала войдите в консоль управления с правами root:
mysql -u root -p
Утилита, запросит пароль, введите пароль root, который задали на предыдущем этапе, дальше вы сможете выполнять команды mysql:
mysql>
Давайте создадим пользователя dbuser для базы данных dbase, с паролем 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 -u root
Затем удалите эту переменную:
sudo systemctl unset-environment MYSQLD_OPTS
Осталось снова запустить сервер в обычном режиме:
sudo systemctl start mysqld
Улучшение производительности mysql
Настройка mysql по умолчанию не всегда оптимальна. Учитывая ваши особенности использования баз данных, можно улучшить ее производительность. Скрипт MySQL Tuner написанный на Perl и предоставляет рекомендации по настройке MySQL в зависимости от вашей нагрузки. Перед тем как запускать скрипт, дайте серверу поработать не менее чем 24 часа. Чем дольше будет время работы, тем точнее инструкции.
Скачайте скрипт:
wget https://raw.githubusercontent.com/major/MySQLTuner-perl/master/mysqltuner.pl
Затем запустите:
perl ./mysqltuner.pl
После запуска вам будет предложено ввести пароль суперпользователя, а затем выведен список рекомендаций по настройке и замечания по безопасности. Это отличная точка для оптимизации сервера.
Удаление mysql
Если вы хотите удалить MySQL CentOS 7, достаточно выполнить такую команду:
sudo yum remove mysql-server
Выводы
В этой статье мы рассмотрели как установить mysql centos 7. Теперь вы можете установить эту программу на своем сервере или домашнем компьютере. Также мы поговорили как выполняется базовая настройка mysql centos 7, поэтому теперь вы сможете получить полностью рабочую систему. Если у вас остались вопросы, спрашивайте в комментариях!
Будет очень интересной статья о различиях между Мирией и Оракловым продуктом.
Использовал CentOS на виртуальном сервере. Проблем не было. Но Ubuntuна сервере (Samba) показалась проще и удобнее.
Это частный случай. Целесообразно рассмотреть установку и настройку LAMP в CentOs
Про удаление мускула не написано))) забыли картинку вставить с командой)
В рассылке, не в статье)
Спасибо за статью
Команда
update user SET PASSWORD=PASSWORD("пароль") WHERE USER='root';
завершалась с ошибкой:
ERROR 1054 (42S22): Unknown column 'PASSWORD' in 'field list'
вместо нее использовал
UPDATE mysql.user SET authentication_string = PASSWORD('MyNewPass')
WHERE User = 'root' AND Host = 'localhost';
с офф сайта https://dev.mysql.com/doc/refman/5.7/en/resetting-permissions.html
Downloading packages:
предупреждение: /var/cache/yum/x86_64/7/mysql57-community/packages/mysql-community-libs-5.7.37-1.el7.x86_64.rpm: Заголовок V4 RSA/SHA256 Signature, key ID 3a79bd29: NOKEY
Получение ключа из file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
GPG ключи включены для репозитория "MySQL 5.7 Community Server", но они не является правильными для данного пакета.
Пожалуйста, проверьте правильно ли настроены URL ключей для данного репозитория.
Не удалось обработать пакет: mysql-community-libs-5.7.37-1.el7.x86_64
Ключи GPG настроены так: file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
udo yum update
Для Адьяна и других, кто столкнулся с такой проблемой:
Помогает выполнение команды
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
Спасибо огромное
помогло установить https://medium.com/@fixitblog/solved-unable-to-install-mysql-on-centos7-2a9998f99497