Настройка centos 7 mysql: Установка и настройка MySQL на CentOS 7
Содержание
Linux Admin — Настройка MySQL на CentOS 7
Как уже говорилось, при настройке CentOS для использования с Maria DB, в репозитории CentOS 7 yum нет собственного пакета MySQL. Чтобы учесть это, нам нужно будет добавить размещенный репозиторий MySQL.
MariaDB против MySQL на CentOS Linux
Стоит отметить, что MySQL потребует другой набор базовых зависимостей от MariaDB. Также использование MySQL нарушит концепцию и философию CentOS: производственные пакеты, разработанные для максимальной надежности.
Поэтому при принятии решения, использовать ли Maria или MySQL, следует взвесить два варианта: будет ли моя текущая схема БД работать с Maria? Какое преимущество дает мне установка MySQL перед Марией?
Компоненты Maria на 100% прозрачны для структуры MySQL, с некоторой дополнительной эффективностью и улучшенным лицензированием. Если нет веских причин, рекомендуется настроить CentOS для использования MariaDB.
Основные причины отдать предпочтение Марии на CentOS –
Большинство людей будут использовать MariaDB.
При возникновении проблем вы получите больше помощи с Марией.
CentOS предназначен для бега с Марией. Следовательно, Мария предложит лучшую стабильность.
Мария официально поддерживается CentOS.
Большинство людей будут использовать MariaDB. При возникновении проблем вы получите больше помощи с Марией.
CentOS предназначен для бега с Марией. Следовательно, Мария предложит лучшую стабильность.
Мария официально поддерживается CentOS.
Загрузите и добавьте репозиторий MySQL
Мы хотим скачать и установить репозиторий MySQL из –
http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
Шаг 1 – Загрузите репозиторий.
Хранилище поставляется удобно упакованным в пакет rpm для легкой установки. Его можно скачать с помощью wget –
[root@centos]# wget http://repo.mysql.com/mysql-community-release-el75.noarch.rpm --2017-02-26 03:18:36-- http://repo.mysql.com/mysql-community-release-el75.noarch.rpm Resolving repo.mysql.com (repo.mysql.com)... 104.86.98.130
Шаг 2 – Установите MySQL из YUM.
Теперь мы можем использовать менеджер пакетов yum для установки MySQL –
[root@centos]# yum -y install mysql-server
Шаг 3 – Запустите и включите MySQL Daemon Service.
[root@centos]# systemctl start mysql [root@centos]# systemctl enable mysql
Шаг 4 – Убедитесь, что наш сервис MySQL запущен и работает.
[root@centos]# netstat -antup | grep 3306 tcp6 0 0 :::3306 :::* LISTEN 6572/mysqld [root@centos]#
Примечание. Мы не пропустим правила брандмауэра. Обычно MySQL настроен на использование доменных сокетов Unix . Это гарантирует, что только веб-сервер стека LAMP, локально, может получить доступ к базе данных MySQL, полностью определяя вектор атаки в программном обеспечении базы данных.
Инструкция по установке MySQL на FreeBSD 11
MySQL — одна из самых заслуженно популярных систем управления базами данных (СУБД). Особенно часто она применяется для хранения данных веб-сайтов различной сложности, так как сочетает в себе простоту установки и первоначальной настройки с высокой функциональностью и неприхотливостью использования. Из-за своей популярности она включена в стандартные репозитории большинства дистрибутивов Linux, а также в систему портов FreeBSD. Разумеется присутствует и версия для OC Windows.
Существует две редакции MYSQL — платная (enterprise) и бесплатная (community). Первая существует также в нескольких вариантах, отличающихся стоимостью и набором поддерживаемых функциональных возможностей. Подробнее об этом рассказывается на официальном сайте MySQL.
В большинстве же случаев обычно хватает бесплатной версии от сообщества (Community) которую можно также скачать с официального сайта MySQL. Там же есть и дополнительные утилиты и коннекторы (драйверы) для MySQL.
В операционных системах семейства FreeBSD также существует пакетный менеджер — система управления пакетами — называющаяся pkg. Она достаточно проста в обращении, благодаря этому, установить Mysql во FreeBSD насколько же просто, как и в других ОС (Windows, Linux).
Для этого необходимо выполнить следующие операции.
Обновить базу данных пакетов командой pkg update для того, чтобы у нас была самая свежая версия пакетов.
root@freebsd11:~ # pkg update Updating FreeBSD repository catalogue... Fetching meta.txz: 100% 944 B 0.9kB/s 00:01 Fetching packagesite.txz: 100% 6 MiB 1.1MB/s 00:06 Processing entries: 100% FreeBSD repository update completed. 31153 packages processed. root@freebsd11:~ #
Находим нужный нам пакет командой pkg search mysql. Так как мы устанавливаем серверную часть MySQL — mysql-server то отфильтруем вывод с помощью утилиты grep.
root@freebsd11:~ # pkg search mysql | grep server geoserver-mysql-plugin-2.12.1 MySQL DataStore implementation for GeoServer mydns-mysql-1.1.0_7 DNS server designed to utilize the MySQL database mysql-udf-0.3_2 Set of user-defined functions for the MySQL server mysql55-server-5.5.60 Multithreaded SQL database (server) mysql56-server-5.6.40 Multithreaded SQL database (server) mysql57-server-5.7.22 Multithreaded SQL database (server) mysql80-server-8.0.2_1 Multithreaded SQL database (server) mysqld_exporter-0.10.0_1 Prometheus exporter for MySQL server metrics mysqlwsrep56-server-5.6.39 MySQL database enhanced with Galera replication (server package) mysqlwsrep57-server-5.7.21 MySQL database enhanced with Galera replication (server package) root@freebsd11:~ #
Выберем версию MySQL и установим его также командой pkg install <имя пакета>, т.е в нашем случае пишем pkg install mysql57-server-5.7.22
Система проведет подготовительные операции и спросит хотим ли мы установить этот пакет — скажем да (Y).
pkg install mysql57-server-5.7.22 Updating FreeBSD repository catalogue... FreeBSD repository is up to date. All repositories are up to date. The following 6 package(s) will be affected (of 0 checked): New packages to be INSTALLED: mysql57-server: 5.7.22 curl: 7.60.0 libnghttp2: 1.31.1 protobuf: 3.5.1.1 mysql57-client: 5.7.22_1 cyrus-sasl: 2.1.26_13 Number of packages to be installed: 6 The process will require 213 MiB more space. 20 MiB to be downloaded. Proceed with this action? [y/N]: pkg install mysql57-server-5.7.22 Updating FreeBSD repository catalogue... FreeBSD repository is up to date. All repositories are up to date. The following 6 package(s) will be affected (of 0 checked): New packages to be INSTALLED: mysql57-server: 5.7.22 curl: 7.60.0 libnghttp2: 1.31.1 protobuf: 3.5.1.1 mysql57-client: 5.7.
22_1 cyrus-sasl: 2.1.26_13 Number of packages to be installed: 6 The process will require 213 MiB more space. 20 MiB to be downloaded. Proceed with this action? [y/N]:
На этом этапе менеджер пакетов сообщит нам какой объем информации ему необходимо скачать из интернета и попросит нашего согласия — также ответим положительно.
New packages to be INSTALLED: libnghttp2: 1.31.1 curl: 7.60.0 protobuf: 3.5.1.1 cyrus-sasl: 2.1.26_13 mysql57-client: 5.7.22_1 mysql57-server: 5.7.22 Number of packages to be removed: 1 Number of packages to be installed: 6 The process will require 148 MiB more space. Proceed with this action? [y/N]:
На этом установка завершена. Для того, чтобы СУБД запускалась при старте системы добавляем mysql_enable=»YES» к файлу /etc/rc.conf echo ‘mysql_enable=»YES»‘ >> /etc/rc. conf
Запускаем MySQL
root@freebsd11:/usr/local # service mysql-server start
Starting mysql.
Проверяем, что он запустился.
service mysql-server status
Если выходит ошибка вида
/usr/local/etc/rc.d/mysql-server: WARNING: failed precmd routine for mysql
То необходимо очистить каталог /var/db/mysql/* и заново проинициализировать MySQL. Для этого введем следующие команды:
rm -rf /var/db/mysql/*
Команда rm удаляет файлы или папки. Ключ -f говорит о том, что команда не должна спрашивать подтверждение данного действия (используйте данный ключ с большой осторожностью, так как в отличие от ОС Windows в системах Linux/Unix корзины нет). Ключ -r означает что необходимо также удалять и вложенные каталоги.
Далее необходимо проинициализировать MySQL.
Для этого запускаем команду mysql_secure_installation
Securing the MySQL server deployment.Connecting to MySQL server using password in '/root/.mysql_secret' VALIDATE PASSWORD PLUGIN can be used to test passwords and improve security. It checks the strength of password and allows the users to set only those passwords which are secure enough. Would you like to setup VALIDATE PASSWORD plugin? Press y|Y for Yes, any other key for No: Y
Программа спрашивает, запустить ли плагин проверки валидности пароля (соответствия требованиям безопасности) — включаем, нажав Y, и выбираем правила сложности:
- low — длина пароля не менее 8 символов
- medium — тоже что и low, плюс пароль должен содержать цифры, символы разных регистров и специальные символы, такие как $# и т.д.
- strong — тоже что и medium плюс не должно быть словарных слов.
Выберем вариант medium нажав 1.
There are three levels of password validation policy: LOW Length >= 8 MEDIUM Length >= 8, numeric, mixed case, and special characters STRONG Length >= 8, numeric, mixed case, special characters and dictionary file Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 1
После задания паролей система спрашивает запретить ли доступ анонимных пользователей — скажем да, запретить.
By default, a MySQL installation has an anonymous user, allowing anyone to log into MySQL without having to have a user account created for them. This is intended only for testing, and to make the installation go a bit smoother. You should remove them before moving into a production environment. Remove anonymous users? (Press y|Y for Yes, any other key for No) :
Запретить ли пользователю root логиниться удаленно — обычно да, запрещают по соображениям безопасности, так как у этого пользователя неограниченные права на доступ в СУБД.
Normally, root should only be allowed to connect from 'localhost'. This ensures that someone cannot guess at the root password from the network. Disallow root login remotely? (Press y|Y for Yes, any other key for No) : Y
Убрать ли тестовые базы. Скажем, например, нет.
By default, MySQL comes with a database named 'test' that anyone can access.This is also intended only for testing, and should be removed before moving into a production environment. Remove test database and access to it? (Press y|Y for Yes, any other key for No) : N
Перезагрузить таблицу привилегий — это таблица прав доступа
Reloading the privilege tables will ensure that all changes made so far will take effect immediately. Reload privilege tables now? (Press y|Y for Yes, any other key for No) : Y
После этого настройка завершена и можно попробовать соединиться с нашей базой данных консольным клиентом командой mysql -u root -p. Если все сделано правильно, то вы успешно войдете в систему.
- -u ключ, указывающий каким пользователем логиниться. По умолчанию у нас есть только root
- -p ключ, требующий ввода пароля. После него можно указать сам пароль в текстовом виде, но это небезопасно, и так никто не делает.
root@freebsd11:~ # mysql -u root -p Enter password: Welcome to the MySQL monitor.Commands end with ; or \g. Your MySQL connection id is 12 Server version: 5.7.13-log 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. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. root@localhost [(none)]>
Можно, например, посмотреть список имеющихся БД командой show databases;.
Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 14 Server version: 5.7.13-log Source distribution 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. Type 'help;' or '\h' for help.Type '\c' to clear the current input statement. root@localhost [(none)]> show databases; +------------------------------+ | Database | +------------------------------+ | information_schema | | mysql | | performance_schema | | sys | +-----------------------------+ 4 rows in set (0.00 sec) root@localhost [(none)]>
На этом установка MySQL на FreeBSD 11 окончена. В нашей базе знаний вы найдёте ещё множество статей посвящённых различным аспектам работы в Linux, а если вы ищете надежный виртуальный сервер под управлением Linux, обратите внимания на нашу услугу — Аренда виртуального сервера на базе Linux.
Заказать сервер на Linux
Как настроить удаленные и безопасные соединения
Введение
MySQL — это система управления базами данных SQL с открытым исходным кодом, разработанная корпорацией Oracle.
SQL означает язык структурированных запросов, который является стандартизированным языком, используемым для доступа к базам данных. Текущая версия языка соответствует стандарту SQL:2003.
MySQL — это реляционная система управления базами данных (RDBMS). Это означает, что база данных хранит данные в отдельных таблицах со структурами, организованными в физические файлы, оптимизированные для скорости. Пользователи устанавливают правила, регулирующие отношения между различными полями данных, используя SQL.
В этом руководстве мы поговорим о том, как установить MySQL и настроить безопасное удаленное соединение в среде CentOS 7.
Установить MySQL
Последняя стабильная версия MySQL — 5.7, именно ее мы установим и настроим в этом руководстве.
Пакет — это первое, что вам нужно добавить, и он доступен в репозитории MySQL. Для начала выполните следующую команду:
# yum localinstall -y https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm
Эта команда добавит репозиторий MySQL, который затем можно будет использовать для установки системы баз данных:
# yum install -y mysql-community-server
В конце процесса установки запустите MySQL, используя
systemd
инструменты:
# systemctl start mysqld
Проверить статус MySQL:
mysqld.service - MySQL Server Загружено: загружено (/usr/lib/systemd/system/mysqld.service; включено; предустановка поставщика: отключена) Active: active (работает) ...
MySQL прослушивает порт 3306, как вы можете видеть, выполнив инструмент
netstat
:
# netstat -plntu | grep mysql
tcp6 0 0 ::: 3306 :::* LISTEN 8776/mysqld
Конфигурация MySQL
При первом запуске сервера MySQL учетная запись суперпользователя (
‘root’@’localhost
) создается с установленным паролем по умолчанию и сохраняется в файле журнала ошибок. Раскройте этот пароль, выполнив следующую команду:
# grep 'temporary password' /var/log/mysqld.log
Вывод:
[Примечание] Генерируется временный пароль для [email protected]: en>_g6syXIXq
Первый шаг — изменить этот пароль root.
Войдите в оболочку MySQL:
# mysql -u root -p
Введите автоматически сгенерированный пароль, который был раскрыт с помощью предыдущей команды.
Далее измените пароль с помощью следующего запроса:
mysql> ИЗМЕНИТЬ ПОЛЬЗОВАТЕЛЯ 'root'@'localhost' ИДЕНТИФИКАЦИЯ ' RootStrongPassword1! ';
Сброс привилегий и выход:
mysql> FLUSH PRIVILEGES; Запрос выполнен успешно, затронуто 0 строк (0,00 сек.) mysql> ВЫХОД; До свидания
Включить SSL для MySQL
По умолчанию у MySQL есть собственные сертификаты SSL, хранящиеся в
/var/lib/mysql
. Для целей этого руководства этих сертификатов достаточно.
Примечание: в рабочей среде всегда используйте более безопасные и «личные» сертификаты.
Проверьте SSL из оболочки MySQL.
# mysql -u корень -p mysql> ПОКАЗАТЬ ГЛОБАЛЬНЫЕ ПЕРЕМЕННЫЕ, КАК '%ssl%'; +----------------+---+ | Имя_переменной | Значение | +----------------+---+ | have_openssl | ДА | | have_ssl | ДА | | ssl_ca | ca.pem | | ssl_capath | | | ssl_cert | сервер-cert.pem | | ssl_cipher | | | ssl_crl | | | ssl_crlpath | | | ssl_key | сервер-ключ.pem | +----------------+---+ 9ряды в наборе (0,01 сек)
Проверить статус SSL:
mysql> STATUS; -------------- mysql Ver 14.14 Distrib 5.7.18, для Linux (x86_64) с использованием оболочки EditLine Идентификатор соединения: 4 Текущая база данных: Текущий пользователь: [электронная почта защищена] SSL: не используется Текущий пейджер: стандартный вывод Использование внешнего файла: '' Использование разделителя: ; Версия сервера: 5.7.18 MySQL Community Server (GPL) Версия протокола: 10 Подключение: Localhost через сокет UNIX Набор символов сервера: latin1 Набор символов БД: latin1 Набор символов клиента: utf8 Соедин. набор символов: utf8 Сокет UNIX: /var/lib/mysql/mysql.sock Время работы: 27 мин 25 сек Темы: 1 Вопросы: 12 Медленные запросы: 0 Открытия: 113 Сбросные таблицы: 1 Открытые таблицы: 106 Запросов в секунду в среднем: 0,007 --------------
Как видите, SSL не используется. Итак, следующий шаг — включить его.
Включить SSL в файле конфигурации MySQL
Отредактируйте файл конфигурации MySQL:
# $EDITOR /etc/my.cnf
В разделе
[mysqld]
вставьте следующее содержимое:
ssl =/var/lib/mysql/ca.pem ssl-cert=/var/lib/mysql/server-cert.pem ssl-key=/var/lib/mysql/server-key.pem
Сохраните, выйдите и перезапустите службу MySQL.
# перезапуск systemctl mysqld
Еще раз проверьте статус SSL в оболочке MySQL.
# mysql -u корень -p mysql> СТАТУС; mysql Ver 14.14 Distrib 5.7.18, для Linux (x86_64) с использованием оболочки EditLine Идентификатор соединения: 5 Текущая база данных: Текущий пользователь: [электронная почта защищена] SSL: не используется Текущий пейджер: стандартный вывод Использование внешнего файла: '' Использование разделителя: ; Версия сервера: 5.7.18 MySQL Community Server (GPL) Версия протокола: 10 Подключение: Localhost через сокет UNIX Набор символов сервера: latin1 Набор символов БД: latin1 Набор символов клиента: utf8 Соедин. набор символов: utf8 Сокет UNIX: /var/lib/mysql/mysql.sock Время работы: 1 мин 2 сек Темы: 1 Вопросы: 6 Медленные запросы: 0 Открытий: 105 Flush-таблиц: 1 Открытых таблиц: 98 запросов в секунду в среднем: 0,096
Включить клиенты
На данный момент SSL еще не используется. Это потому, что нам нужно принудительно использовать все наши клиентские соединения через SSL. Итак, выйдите из оболочки MySQL и снова отредактируйте файл
my. cnf
.
# $EDITOR /etc/my.cnf
Туда в конец файла вставьте следующее содержимое:
[клиент] ssl-ca=/var/lib/mysql/ca.pem ssl-cert=/var/lib/mysql/client-cert.pem SSL-ключ=/var/lib/mysql/client-key.pem
Сохранить, выйти и перезапустить MySQL еще раз:
# systemctl перезапустить mysqld
Проверить состояние MySQL, как описано выше:
mysql> STATUS -------------- mysql Ver 14.14 Distrib 5.7.18, для Linux (x86_64) с использованием оболочки EditLine Идентификатор соединения: 3 Текущая база данных: Текущий пользователь: [электронная почта защищена] SSL: используется шифр DHE-RSA-AES256-SHA . Текущий пейджер: стандартный вывод Использование внешнего файла: '' Использование разделителя: ; Версия сервера: 5.7.18 MySQL Community Server (GPL) Версия протокола: 10 Подключение: Localhost через сокет UNIX Набор символов сервера: latin1 Набор символов БД: latin1 Набор символов клиента: utf8 Соедин.набор символов: utf8 Сокет UNIX: /var/lib/mysql/mysql.sock Время работы: 1 мин 32 сек. Темы: 1 Вопросы: 6 Медленные запросы: 0 Открытий: 105 Flush-таблиц: 1 Открытых таблиц: 98 запросов в секунду в среднем: 0,065
SSL теперь включен, и соединения защищены через него.
Разрешить удаленные подключения
Последний шаг в руководстве — разрешить удаленные подключения. Как известно каждому системному администратору, фундаментальный разрешает только проверенным клиентам.
Отредактируйте файл конфигурации MySQL:
# $EDITOR /etc/my.cnf
В конце раздела
[mysqld]
вставьте следующие строки:
адрес привязки = * require_secure_transport = ON
Сохраните, выйдите и перезапустите MySQL.
# systemctl перезапустить mysqld
Создать нового пользователя для удаленных подключений
На этом этапе SSL и удаленные подключения включены. Следующее, что нужно сделать, это создать нового пользователя MySQL:
# mysql -u root -p
Создать нового пользователя:
mysql> СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ 'gmolica'@'%' ИДЕНТИФИКАЦИЯ 'Unixmen1!' ТРЕБУЕТСЯ X509 ; mysql> ПРЕДОСТАВЬТЕ ВСЕ ПРИВИЛЕГИИ НА *.* 'gmolica'@'%', ОПРЕДЕЛЕННОМУ 'Unixmen1!' ТРЕБУЕТСЯ X509; mysql> УДАЛИТЬ ПРИВИЛЕГИИ; mysql> ВЫХОД;
Заключение
На предыдущем шаге мы завершили настройку MySQL. Теперь можно удаленно войти в систему базы данных, используя созданные учетные данные. Конечно, у клиента должны быть копии сертификатов, чтобы подключиться через SSL.
Установка и настройка сервера MySQL (CentOS) — практические занятия
Цены
Об этом практическом занятии
Сервер MySQL — одна из самых популярных и широко используемых реляционных баз данных. В этой лабораторной работе вам будет поручено установить сервер MySQL на CentOS 7 и обеспечить его надлежащую защиту.
Цели обучения
Успешно завершить эту лабораторную работу, достигнув следующих целей обучения:
- Загрузите tar-файл MySQL RPM Bundle со страницы загрузки MySQL Community Server
В домашнем каталоге пользователя cloud_user выполните следующее:
# wget https://dev.
mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.15-1.el7.x86_64.rpm-bundle.tar
- Извлеките файлы RPM из файла tar пакета MySQL
В домашнем каталоге
cloud_user
используйте командуtar
для извлечения RPM-файлов из пакета tar-файла:[cloud_user@host]$ tar -xvf mysql-8.0.15-1.el7.x86_64 .rpm-bundle.tar
- Установите сервер MySQL и зависимости с помощью команды `rpm`
В домашнем каталоге
cloud_user
используйте командуrpm
для установки сервера MySQL и зависимостей:[ cloud_user@host]$ sudo rpm -Uvh mysql-community-{server,client,common,libs}-*
- Запустите сервер MySQL
Используйте
systemctl
для запуска службыmysqld
:[cloud_user@host]$ sudo systemctl start mysqld
Найдите временный пароль для суперпользователя:
[cloud_user@host]$ sudo grep 'temporary password' /var/log/mysqld.
log
Используя временный пароль, войдите на сервер MySQL как
root
user:[cloud_user@host]$ # mysql -u root -p
Обновите пароль для
root
пользователя:mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '
'; Для оценки убедитесь, что NEW_PASSWORD равен
Linux4me!
.Выйдите из приглашения mysql:
mysql> exit
- Защитите установку сервера MySQL, убедившись, что анонимные пользователи удалены, удаленный вход «root» отключен, база данных «test» удалена, а таблицы привилегий удалены. Был перезагружен
Начните установку, выполнив команду
mysql_secure_installation
:cloud_user@host]$ mysql_secure_installation
Ответьте на следующие вопросы, чтобы завершить безопасную установку:
Изменить пароль для root ? н Удалить анонимных пользователей? у Запретить удаленный вход в систему root? у Удалить тестовую базу данных и доступ к ней? у Перезагрузить таблицы привилегий сейчас? y
Обновите пароль суперпользователя на сервере MySQL для сервера
Связаться с отделом продажСмотреть цены
Что такое практические занятия
Практические лаборатории — это реальная среда, созданная отраслевыми экспертами, чтобы помочь вам учиться.