Centos 7 настройка mysql: Установите MySQL на CentOS 7

Содержание

Как установить и настроить сервер кластер MySQL на CentOS 7

Заглавие

  1. Предпосылки
  2. Шаг 1 — Настройка узла управления
    1. A. Загрузка программного обеспечение кластера MySQL
    2. B. Установка и удаление пакетов
    3. C. Установка кластера MySQL
    4. D. Настройка кластера MySQL
    5. E. Старт узла управления
  3. Шаг 2 — Настройка в MySQL Cluster Data Nodes
    1. A. Войти как root пользователь и загрузить программное обеспечение кластера MySQL
    2. B. Установка и удаление пакетов
    3. C. Установить кластер MySQL
    4. D. Настройка узла данных
    5. E. Повторить шаг 2.А — 2.D на db3 сервере.
  4. Шаг 3 — Настройка SQL Node
    1. A. Вход в систему и загрузка кластера MySQL
    2. B. Установка и удаление пакетов
    3. C. Установка кластера MySQL
    4. D. Настройка SQL Node
    5. E. Повторить шаг 3.A — 3.D на DB5 сервере.
  5. Шаг 4 — Монитор кластера
  6. Шаг 5 — Тестирование кластера
  7. Вывод

MySQL Cluster предназначен для обеспечения совместимой базы данных MySQL с высокой доступностью и низкой задержкой. Технология кластера MySQL реализуется через механизмы хранения NDB (Network DataBase) и NDB кластер и обеспечивает неразделяемую кластеризацию и авто-шардинга для систем баз данных MySQL. В неразделяемой архитектуре, каждый из узлов имеет свою собственную память и диск, использование общего хранилища, такие как NFS, SANs не рекомендуется и поддерживается.

Для реализации кластера MySQL, мы должны установить три типа узлов. Каждый тип узлов будет установлен на его собственном сервере. Компоненты:

1. Узел управления — NDB_MGMD/MGM
Сервер управления кластера используется для управления другого узла кластера. Мы можем создавать и настраивать новые узлы, перезагрузки, удаление или резервирование узлов в кластере из узла управления.

2. Узлы данных — NDBD / NDB
Это слой, где происходит процесс синхронизации и репликации данных между узлами.

3. SQL Узлы — MYSQLD / API
Серверы интерфейса, которые используются приложениями для подключения к кластеру базы данных.

На этом уроке, я проведу вас через установку и конфигурацию кластера MySQL с CentOS 7. Мы настроим узел управления, два узла передачи данных и два узла SQL.

Предпосылки

  • ОС CentOS 7 — 64-битная.
  • 5 CentOS серверов или виртуальных машин. Я буду использовать имена хостов и IP-адреса, как показано ниже:
    • Узел управления
      DB1 = 192.168.1.220
    • Данные узлы
      db2 = 192.168.1.221
      db3 = 192.168.1.222
    • SQL узлы
      db4 = 192.168.1.223
      DB5 = 192.168.1.224

Шаг 1 — Настройка узла управления

Первый шаг заключается в создании «Узел управления» с CentOS 7 DB1 и IP 192.168.1.220 . Убедитесь , что вы вошли в сервер db1 в качестве пользователя root.

A. Загрузите программное обеспечение кластера MySQL

Я буду загружать его с сайта MySQL с помощью wget. Я использую здесь «Red Hat Enterprise Linux 7 / Oracle Linux 7 (x86, 64-разрядная версия), RPM Bundle», который совместим с CentOS 7. Затем извлекаем архивный файл.

cd ~
wget http://dev.mysql.com/get/Downloads/MySQL-Cluster-7.4/MySQL-Cluster-gpl-7.4.10-1.el7.x86_64.rpm-bundle.tar
tar -xvf MySQL-Cluster-gpl-7.4.10-1.el7.x86_64.rpm-bundle.tar

 

B. Установка и удаление пакетов

Перед тем как установить пакет MySQL Cluster, вам нужно установить Perl-Data-Dumper, который требуется серверу MySQL-кластера. И вам нужно удалить MariaDB-LIBS  прежде чем мы сможем установить MySQL Cluster.

yum -y install perl-Data-Dumper
yum -y remove mariadb-libs

 

C. Установить MySQL Cluster

Установить пакет MySQL Cluster с командой rpm :

cd ~
rpm -Uvh MySQL-Cluster-client-gpl-7.4.10-1.el7.x86_64.rpm
rpm -Uvh MySQL-Cluster-server-gpl-7.4.10-1.el7.x86_64.rpm
rpm -Uvh MySQL-Cluster-shared-gpl-7.4.10-1.el7.x86_64.rpm

 

Убедитесь, что нет никакой ошибки.

D. Настройка MySQL Cluster

Создайте новый каталог для файлов конфигурации. Я буду использовать каталог «/var/lib/mysql-cluster«.

mkdir -p /var/lib/mysql-cluster

 

Затем создайте новый файл конфигурации для управления кластерами под названием «config.ini » в каталоге MySQL-кластера.

cd /var/lib/mysql-cluster
vi config.ini

 

Вставьте следующую конфигурацию:

[ndb_mgmd default]
# Directory for MGM node log files
DataDir=/var/lib/mysql-cluster
 
[ndb_mgmd]
#Management Node db1
HostName=192.168.1.220
 
[ndbd default]
NoOfReplicas=2      # Number of replicas
DataMemory=256M     # Memory allocate for data storage
IndexMemory=128M    # Memory allocate for index storage
#Directory for Data Node
DataDir=/var/lib/mysql-cluster
 
[ndbd]
#Data Node db2
HostName=192.168.1.221
 
[ndbd]
#Data Node db3
HostName=192.168.1.222
 
[mysqld]
#SQL Node db4
HostName=192.168.1.223
 
[mysqld]
#SQL Node db5
HostName=192. 168.1.224

 

Сохраните файл и выйдите.

E. Запустите узел управления

Далее запустите узел управления с командой ниже:

ndb_mgmd --config-file=/var/lib/mysql-cluster/config.ini

 

Результат должен быть похож на этот:

MySQL Cluster Management Server mysql-5.6.28 ndb-7.4.10
2016-10-08 18:26:05 [MgmtSrvr] INFO     — The default config directory ‘/usr/mysql-cluster’ does not exist. Trying to create it…
2016-10-08 18:26:05 [MgmtSrvr] INFO     — Successfully created config directory

Узел управления запускается, теперь вы можете использовать команду «ndb_mgm» для мониторинга узла:

ndb_mgm
show

 

Вы можете увидеть, что узел управления был запущен с: MySQL-6.6 и ndb-7.4.

Шаг 2 — Настройка в MySQL Cluster Data Nodes

Мы будем использовать 2 сервера CentOS для узлов данных.

  1. db2 = 192.168.1.221
  2. db3 = 192.168.1.222

A. Войдите как пользователь root и загрузите программное обеспечение кластера MySQL

Вход на сервер DB2 с помощью SSH:

ssh root@192. 168.1.221

 

Затем загрузите пакет MySQL Cluster и извлеките его:

cd ~
wget http://dev.mysql.com/get/Downloads/MySQL-Cluster-7.4/MySQL-Cluster-gpl-7.4.10-1.el7.x86_64.rpm-bundle.tar
tar -xvf MySQL-Cluster-gpl-7.4.10-1.el7.x86_64.rpm-bundle.tar

 

B. Установка и удаление пакетов

Установка Perl-Data-Dumper и удаление MariaDB-LIBS:

yum -y install perl-Data-Dumper
yum -y remove mariadb-libs

 

C. Установите MySQL Cluster

Теперь мы можем установить пакеты кластера MySQL для узлов данных с помощью этих команд rpm:

cd ~
rpm -Uvh MySQL-Cluster-client-gpl-7.4.10-1.el7.x86_64.rpm
rpm -Uvh MySQL-Cluster-server-gpl-7.4.10-1.el7.x86_64.rpm
rpm -Uvh MySQL-Cluster-shared-gpl-7.4.10-1.el7.x86_64.rpm

 

Убедитесь, что нет никакой ошибки.

D. Настройка узла данных

Создайте новый файл конфигурации в  директории /etc с помощью редактора vi:

vi /etc/my.cnf

 

Вставьте следующую конфигурацию:

[mysqld]
ndbcluster
ndb-connectstring=192. 168.1.220     # IP address of Management Node
 
[mysql_cluster]
ndb-connectstring=192.168.1.220     # IP address of Management Node

 

Сохраните файл и выйдите.

Затем создайте новый каталог для данных базы данных, которое мы определили в файле конфигурации узла управления «config.ini».

mkdir -p /var/lib/mysql-cluster

 

Теперь запустите узел данных / NDBD:

ndbd

 

Результаты:

2016-10-08 19:35:56 [ndbd] INFO     — Angel connected to ‘192.168.1.220:1186’
2016-10-08 19:35:56 [ndbd] INFO     — Angel allocated nodeid: 2

Узел данных DB2 подключен к узлу управления интеллектуальной собственностью 192.168.1.220.

E. Повторить шаг 2.А — 2.D на db3 сервере.

Так как мы имеем 2 узла данных, пожалуйста, повторить шаги 2.А — 2.d на нашем втором узле данных.

Шаг 3 — Настройка SQL Node

Это шаг содержит настройки для SQL Node, который предоставляет приложению доступ к базе данных. Мы используем 2 сервера CentOS для SQL узлов:

  1. DB4 = 192.168.1.223
  2. DB5 = 192.168.1.224

A. Войдите в систему и загрузите MySQL Cluster

Войдите на сервер db4 в качестве пользователя root:

ssh [email protected]

 

И загрузите пакет MySQL Cluster:

cd ~
wget http://dev.mysql.com/get/Downloads/MySQL-Cluster-7.4/MySQL-Cluster-gpl-7.4.10-1.el7.x86_64.rpm-bundle.tar
tar -xvf MySQL-Cluster-gpl-7.4.10-1.el7.x86_64.rpm-bundle.tar

 

B. Установка и удаление пакетов

Установите perl-Data-Dumper и удалите mariadb-libs, чтобы не было конфликта с MySQL Cluster.

yum -y install perl-Data-Dumper
yum -y remove mariadb-libs

 

C. Установите MySQL Cluster

Установите сервер MySQL Cluster, клиента и пакет с помощью команды rpm ниже:

cd ~
rpm -Uvh MySQL-Cluster-client-gpl-7.4.10-1.el7.x86_64.rpm
rpm -Uvh MySQL-Cluster-server-gpl-7.4.10-1.el7.x86_64.rpm
rpm -Uvh MySQL-Cluster-shared-gpl-7. 4.10-1.el7.x86_64.rpm

 

D. Настройка SQL Node

Создайте новый файл my.cnf в каталоге /etc:

vi /etc/my.cnf

 

Скопируйте конфигурацию ниже:

[mysqld]
ndbcluster
ndb-connectstring=192.168.1.220       # IP address for server management node
default_storage_engine=ndbcluster     # Define default Storage Engine used by MySQL
 
[mysql_cluster]
ndb-connectstring=192.168.1.220       # IP address for server management node

 

Сохраните файл и выйдите из редактора.

Запустите SQL Node, запустив сервер MySQL:

service mysql start

 

E. Повторить шаг 3.A — 3.D на DB5 сервере.

Пожалуйста, повторите шаги 3.А — 3.D на втором сервере SQL (DB5).

Шаг 4 — Мониторинг кластера

Чтобы увидеть состояние кластера, мы должны войти в DB1 узел управления.

ssh [email protected]

 

Мы можем использовать команду ndb_mgm, чтобы увидеть состояние кластера:

ndb_mgm
ndb_mgm> show

 

Еще одна полезная команда:

ndb_mgm -e "all status"
ndb_mgm -e "all report memory"

 

Шаг 5 — Тестирование кластера

Для того, чтобы выполнить тест на нашем новом MySQL Cluster, мы должны войти в db4 или db5 узлов серверов SQL.

Вход на сервер db4:

ssh [email protected]

 

Измените в MySQL пароль по умолчанию, сохраненный в  файле «.mysql_secret» в корневом каталоге:

cd ~
cat .mysql_secret

 

это мой пример:

# The random password set for the root user at Tue Mar 21 19:44:07 2016 (local time): qna4AwbJOuOnw13T

Теперь измените пароль с помощью команды ниже:

mysql_secure_installation

 

Введите старый пароль MySQL, а затем введите новый, нажмите клавишу ВВОД, чтобы подтвердить.

Если все будет сделано, вы можете войти в оболочку MySQL с паролем:

mysql -u root -p

 

После того, как вы вошли в систему, создайте нового пользователя root для хоста » @ «, так что мы сможем получить доступ к MySQL извне.

CREATE USER 'root'@'%' IDENTIFIED BY 'andreyex123';

 

Заменить andreyex123 на ваш собственный надежный пароль!  Теперь вы можете увидеть нового пользователя root «@» в списке пользователей MySQL:

select user, host, password from mysql. user;

 

И предоставьте новому пользователю root привилегии: читать и написать доступ с удаленного узла:

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY PASSWORD '*94CC7BF027327993D738E11...(Encrypted PASSWORD)' WITH GRANT OPTION;

 

Теперь попробуйте создать новую базу данных с сервера db4 и вы увидите базу данных на DB5 тоже.

Это просто результат выборки для тестирования репликации данных кластера.

MySQL Cluster успешно был установлен на CentOS 7 с 5 серверными узлами

Вывод

MySQL Cluster представляет собой технологию, которая обеспечивает высокую доступность и избыточность для баз данных MySQL. Он использует NDB или NDBCLUSTER в качестве механизма хранения и обеспечивает неразделяемую кластеризацию и авто-шардинг для баз данных MySQL. Для реализации кластера, нам нужно 3 компонента: Узел управления (MGM), Узлы данных (NDB) и SQL-узлы (API). Каждый из узлов должен иметь свою собственную память и диск. Не рекомендуется использовать сетевое хранилище, такие как NFS. Чтобы установить MySQL Cluster на минимальной системе CentOS 7, мы должны удалить пакет MariaDB-LIBS, MariaDB-LIBS конфликтует с MySQL кластер-сервером, и вы должны установить пакет Perl-Data-Dumper, это необходимо для MySQL-кластера-сервера. Кластер MySQL легко установить и настроить на нескольких серверах CentOS.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Собираем InnoDB cluster из mysql 5.7 на centos 7 / Хабр

Всем привет!

Как-то раз появилась по работе задача — есть вроде бы настроенный тестовый innoDB cluster на нескольких виртуалках с centos 7.5, надо его поизучать и добавить еще пару нод. Можно ломать и издеваться как угодно. Звучит заманчиво.


До этого у меня опыта работы с таким кластером не было, ну да гугл в помощь.

За несколькими исключениями, все ссылки что в нем, что в яндексе вели либо на dev.mysql.com, либо на эту статью на Хабре. Вроде как по ней и был настроен кластер из двух нод.

Чтож, статью я прочитал, несколько удивился сложности добавления нод и отсутствию многих подробностей, ну да ладно. Добавил с грехом пополам новую ноду (часть команд не пригодилась, часть вообще все ломала), после чего начал экспериментировать с перезапуском нод и т.д.

После нескольких подходов и бесчисленных смертей нервных клеток кластер не выдержал. Одна нода не хотела добавляться ни при каких условиях, другая зависала при попытке любого обращения к базе, третья делала вид, что все в порядке. Пришлось пристрелить и начать с нуля.

При создании нового кластера к сожалению возникла не меньшая куча проблем и нестыковок. Возможно дело в версиях программ, я пробовал mysql 5.7. Возможно в дистрибутиве. В итоге я прекратил бездумные потуги делать все по бумажке и стал настраивать его методом тыка. И гугла.

Пара приятных вечеров и ночей и кластер собрался и даже отказался рушиться.

При этом способ его создания заметно отличался от предыдущих попыток и мне захотелось им поделиться, т. к. на просторах интернета других актуальных подробных понятных инструкций по настройке inndoDB cluster я не нашел.

Итак, имеем три одинаковых виртуалки со свежеустановленным Centos 7.5 minimal 1804 и отключенными selinux и firewalld:

1.1.1.1

1.1.1.2

1.1.1.3

По работе я использовал mysql 5.7, так что ее и используем. Начнем с 1.1.1.1:

1. Установим репозиторий mysql-community:

rpm -i https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm


Выключим репозиторий для 8, включим для 5.7 и проверим — если все ок, то устанавливаем mysql:

yum install yum-utils
yum-config-manager --disable mysql80-community
yum-config-manager --enable mysql57-community
yum repolist
yum install mysql-community-server mysql-shell


2. Приводим /etc/my.cnf к такому виду:

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
symbolic-links=0
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
bind-address=0. 0.0.0
port=3301
# Replication part
server_id=1
gtid_mode=ON
enforce_gtid_consistency=ON
master_info_repository=TABLE
relay_log_info_repository=TABLE
binlog_checksum=NONE
log_slave_updates=ON
log_bin=binlog
binlog_format=ROW
plugin-load = group_replication.so
# Group replication part
transaction_write_set_extraction=XXHASH64
loose-group_replication_start_on_boot = OFF
loose-group_replication_local_address = 1.1.1.1:33011
loose-group_replication_bootstrap_group = OFF
report_port = 3301
report_host = 1.1.1.1


Здесь 3301 это порт, на котором будет слушать mysql, а 33011 порт, на котором ноды общаются между собой.

3. Запустим mysql и выполним предварительную настройку:

systemctl start mysqld
grep 'password' /var/log/mysqld.log
mysql_secure_installation


4. Ну и создадим кластер, а так же отдельного пользователя для управления им. Если вы знаете заранее ip-адреса нод, то можно их сразу перечислить в ipWhitelist. Сделаем вид, что мы пока не знаем про 1.1.1.2. и 1.1.1.3:

mysqlsh
> \c 127.0.0.1:3301
> dba.configureLocalInstance("127.0.0.1:3301", {mycnfPath: "/etc/my.cnf", clusterAdmin: "cladmin", clusterAdminPassword: "SomePassword!123"})
> \c [email protected]:3301
> dba.checkInstanceConfiguration()
> cl=dba.createCluster('TestCluster', {ipWhitelist: '1.1.1.1'})
> dba.configureLocalInstance()
> cl.status()


Готово! cl.status должен вывести что-то типа этого:

{
    "clusterName": "TestCluster",
    "defaultReplicaSet": {
        "name": "default",
        "primary": "1.1.1.1:3301",
        "ssl": "REQUIRED",
        "status": "OK_NO_TOLERANCE",
        "statusText": "Cluster is NOT tolerant to any failures.",
        "topology": {
            "1.1.1.1:3301": {
                "address": "1.1.1.1:3301",
                "mode": "R/W",
                "readReplicas": {},
                "role": "HA",
                "status": "ONLINE"
            }
        }
    },
    "groupInformationSourceMember": "mysql://cladmin@1. 1.1.1:3301"
}


При изменении кластера надо будет выполнять на всех нодах локально команду dba.configureLocalInstance() для сохранения изменений:

WARNING: On instance '1.1.1.1:3301' membership change cannot be persisted since MySQL version 5.7.23 does not support the SET PERSIST command (MySQL version >= 8.0.11 required). Please use the <Dba>.configureLocalInstance command locally to persist the changes.


Т.к. мы собираемся добавить еще парочку нод, то не закрываем связь с сервером 1.1.1.1, он нам еще пригодится.

Теперь попробуем добавить в кластер ноду 1.1.1.2. Для этого выполняем на ней все те же команды до 3 шага включительно, не забывая поменять server_id, loose-group_replication_local_address и report_host.

4. Выполняем на 1.1.1.2:

mysql -p
> set GLOBAL group_replication_allow_local_disjoint_gtids_join=ON;


Я пытался задавать эту переменную через mysqlsh, переключаясь в режим sql, но действия там никак не влияли на нее в mysql. Далее:

mysqlsh
> \c 127.0.0.1:3301
> dba.configureLocalInstance("127.0.0.1:3301", {mycnfPath: "/etc/my.cnf", clusterAdmin: "cladmin", clusterAdminPassword: "SomePassword!123"})
> \c [email protected]:3301
> dba.checkInstanceConfiguration()

5. Возвращаемся к первой ноде 1.1.1.1. Если закрыли соединение, то можно быстро подключиться к кластеру так:

mysqlsh --uri [email protected]:3301 --cluster
> \sql
> STOP GROUP_REPLICATION;
> SET GLOBAL group_replication_ip_whitelist="1.1.1.1,1.1.1.2";
> START GROUP_REPLICATION;
> \js
> cluster.addInstance('[email protected]:3301', {ipWhitelist: '1.1.1.1,1.1.1.2'})
> cluster.status()


Почему-то при добавлении ноды без опции ipWhitelist он ей не передается автоматически, поэтому указываем вручную.

Если whitelist у вас изначально настроен на все ноды или подсеть, то команды в sql режиме можно пропустить.

Не забываем выполнить dba.configureLocalInstance() на всех нодах для сохранения конфигурации.

Получился кластер их двух нод:

{
    "clusterName": "TestCluster",
    "defaultReplicaSet": {
        "name": "default",
        "primary": "1.1.1.1:3301",
        "ssl": "REQUIRED",
        "status": "OK_NO_TOLERANCE",
        "statusText": "Cluster is NOT tolerant to any failures.",
        "topology": {
            "1.1.1.1:3301": {
                "address": "1.1.1.1:3301",
                "mode": "R/W",
                "readReplicas": {},
                "role": "HA",
                "status": "ONLINE"
            },
            "1.1.1.2:3301": {
                "address": "1.1.1.2:3301",
                "mode": "R/O",
                "readReplicas": {},
                "role": "HA",
                "status": "ONLINE"
            }
        }
    },
    "groupInformationSourceMember": "mysql://[email protected]:3301"
}


Чтож, кластер из двух нод есть, но в режиме «Cluster is NOT tolerant to any failures.»

Добавим третью, алгоритм в принципе не отличается от добавления второй.

Если вам опять требуется поменять whitelist, то выполнять команды надо на r/w ноде, т.к. на r/o нодах это ни к чему вроде не приводит. При этом r/o ноды отвалятся и их надо будет пересоединить, попутно сообщив новый whitelist.

В нашем случае:

> cluster.rejoinInstance('[email protected]:3301', {ipWhitelist: '1.1.1.1,1.1.1.2,1.1.1.3'})


Ну и опять же не забываем выполнить dba.configureLocalInstance() на всех нодах для сохранения конфигурации.

Кластер из трех нод выглядит так:

{
    "clusterName": "TestCluster",
    "defaultReplicaSet": {
        "name": "default",
        "primary": "1.1.1.1:3301",
        "ssl": "REQUIRED",
        "status": "OK",
        "statusText": "Cluster is ONLINE and can tolerate up to ONE failure.",
        "topology": {
            "1.1.1.1:3301": {
                "address": "1.1.1.1:3301",
                "mode": "R/W",
                "readReplicas": {},
                "role": "HA",
                "status": "ONLINE"
            },
            "1. 1.1.2:3301": {
                "address": "1.1.1.2:3301",
                "mode": "R/O",
                "readReplicas": {},
                "role": "HA",
                "status": "ONLINE"
            },
            "1.1.1.3:3301": {
                "address": "1.1.1.3:3301",
                "mode": "R/O",
                "readReplicas": {},
                "role": "HA",
                "status": "ONLINE"
            }
        }
    },
    "groupInformationSourceMember": "mysql://[email protected]:3301"
}


В случае, если кластер развалился до состояния одной ноды, его надо будет запускать с параметром loose-group_replication_bootstrap_group = ON в /etc/my.cnf

После запуска параметр надо будет выключить обратно, иначе эта нода всегда будет отделяться от кластера и поддерживать свой.

Установка mysql-router хорошо описана тут, так что дублировать смысла не вижу.

На этом все вроде все, надеюсь кому-то мой опыт пригодится.

Спасибо за внимание.

Установка и настройка сервера MySQL (CentOS)

  • Значок лаборатории
    Лаборатория
  • Облачный гуру

Значок Google Cloud Platform

Сервер MySQL — одна из самых популярных и широко используемых реляционных баз данных. В этой лабораторной работе вам будет поручено установить сервер MySQL на CentOS 7 и обеспечить его надлежащую защиту.

Попробуй бесплатно

Связаться с отделом продаж

Значок Google Cloud Platform

Связаться с отделом продаж

Содержание

  1. Вызов

    Загрузите 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

  2. Вызов

    Извлечение файлов RPM из файла tar пакета MySQL

    В домашнем каталоге cloud_user используйте tar команда для извлечения файлов RPM из файла tar пакета:

     [[email protected]]$ tar -xvf mysql-8.0.15-1.el7.x86_64.rpm-bundle.tar
     
  3. Вызов

    Установите сервер MySQL и зависимости с помощью команды `rpm`

    В домашнем каталоге cloud_user используйте команду rpm для установки сервера MySQL и зависимостей:

     [[email protected]]$ sudo rpm -Uvh mysql-community-{server,client,common,libs}-*
     
  4. Вызов

    Запуск сервера MySQL

    Используйте systemctl для запуска службы mysqld :

     [[email protected]]$ sudo systemctl start mysqld
     
  5. Вызов

    Обновите пароль для учетной записи суперпользователя на сервере MySQL

    Найдите временный пароль для суперпользователя:

     [[электронная почта защищена]]$ sudo grep 'temporary password' /var/log/mysqld. log
     

    Используя временный пароль, войдите на сервер MySQL как пользователь root :

     [[email protected]]$ # mysql -u root -p
     

    Обновите пароль для пользователя root :

     mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '';
     

    Для оценки убедитесь, что NEW_PASSWORD равен Linux4me! .

    Выйдите из приглашения mysql:

     mysql> выход
     
  6. Вызов

    Защитите установку сервера MySQL, убедившись, что анонимные пользователи удалены, удаленный вход в систему «root» отключен, база данных «test» удалена, а таблицы привилегий были перезагружены

    Начните установку, выполнив команду mysql_secure_installation :

     [email protected]]$ mysql_secure_installation
     

    Чтобы завершить безопасную установку, ответьте на следующие вопросы:

     Изменить пароль для root ? н
    Удалить анонимных пользователей? у
    Запретить удаленный вход в систему root? у
    Удалить тестовую базу данных и доступ к ней? у
    Перезагрузить таблицы привилегий сейчас? у
     

Облачный гуру

Команда Cloud Content состоит из профильных экспертов, специализирующихся на услугах, предлагаемых ведущими поставщиками облачных услуг (AWS, GCP и Azure), а также связанных с облачными технологиями, таких как Linux и DevOps. Команда рада поделиться своими знаниями, чтобы помочь вам создавать современные технические решения с нуля, защищать и оптимизировать вашу среду и многое другое!

Что такое лаборатория?

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

Начните учиться прямо сегодня

Посмотреть планы

Как установить MySQL 8.0/5.7 на CentOS 7 / RHEL 7

MySQL — это бесплатная система управления базами данных с открытым исходным кодом, которая обычно используется в веб-приложениях для хранения и извлечения записей и информации.

MySQL изначально был разработан компанией MYSQL AB, которая теперь принадлежит корпорации Oracle. Это было основное приложение базы данных для операционной системы Linux, пока не появилась MariaDB, ответвление MySQL.

В этой статье мы увидим, как установить MySQL 8.0/5.7 на CentOS 7 / RHEL 7.

Добавить репозиторий MySQL

MySQL больше не распространяется через репозитории ОС. Таким образом, вам нужно будет добавить официальный репозиторий MySQL для установки сервера сообщества MySQL.

 об/мин -ivh https://dev.mysql.com/get/mysql80-community-release-el7-4.noarch.rpm
 

Убедитесь, что репозиторий MySQL добавлен и включен с помощью следующей команды.

 ням перепечатать все | grep mysql | grep включен 

Результат: Может выглядеть так.

 mysql-connectors-community/x86_64 MySQL Connectors Community включено: 221
mysql-tools-community/x86_64 Сообщество инструментов MySQL включено: 135
mysql80-community/x86_64 Сервер сообщества MySQL 8. 0 включен: 301
 

Установить MySQL Community Server

В настоящее время Oracle предлагает обе стабильные версии (v8.0 и v5.7). Вы можете выбрать тот, который хотите установить на свой компьютер.

Установить MySQL 8.0

Используйте команду yum для установки сервера сообщества MySQL 8.0.

 yum install -y mysql-community-server
 

Установите MySQL 5.7

Если вы хотите попробовать более старую версию MySQL, установите MySQL 5.7 на свой компьютер с помощью приведенной ниже команды.

 yum install -y mysql-community-server --disablerepo=mysql80-community --enablerepo=mysql57-community
 

После установки MySQL вы можете запустить сервер MySQL с помощью следующей команды.

 systemctl запустить mysqld
 

Затем включите службу MySQL для автоматического запуска при запуске системы.

 systemctl включить mysqld
 

Наконец, проверьте, запущен ли сервер MySQL, с помощью следующей команды.

 статус systemctl mysqld
 

Исходный корневой пароль MySQL

В CentOS/RHEL вы можете найти начальный корневой пароль MySQL в /var/log/mysqld. log . Вы можете использовать приведенную ниже команду, чтобы взять пароль из файла журнала.

 кошка /var/log/mysqld.log | grep -i 'временный пароль' 

Выходные данные:

 2021-11-27T08:27:27.063799Z 6 [Примечание] [MY-010454] [Сервер] Создан временный пароль для [email protected]:  PJyCj hTjP1:n  

Безопасный сервер MySQL

Теперь вам нужно запустить mysql_secure_installation , чтобы защитить вашу установку MySQL. Эта команда отвечает за установку пароля root, удаление анонимных пользователей, запрет удаленного входа в систему root и т. д.

 mysql_secure_installation 

Вывод:

 Защита развертывания сервера MySQL.
Введите пароль для пользователя root:  << Введите начальный пароль root для MySQL 
Срок действия существующего пароля для учетной записи пользователя root истек. Пожалуйста, установите новый пароль.
Новый пароль:  << Введите новый пароль root MySQL 
Повторно введите новый пароль:  << Повторно введите новый корневой пароль MySQL 
На сервере установлен компонент validate_password. 
Последующие шаги будут выполняться с существующей конфигурацией.
компонента.
Использование существующего пароля для root.
Расчетная надежность пароля: 100
Сменить пароль для рута? ((Нажмите y|Y для Да, любую другую клавишу для Нет) :  N   << Введите N, так как мы уже установили новый пароль 
 ... пропуская.
По умолчанию установка MySQL имеет анонимного пользователя,
позволяя любому войти в MySQL без необходимости иметь
учетная запись пользователя, созданная для них. Это предназначено только для
тестирование и сделать установку более плавной.
Вы должны удалить их, прежде чем переходить к производству
среда.
Удалить анонимных пользователей? (Нажмите y|Y для Да, любую другую клавишу для Нет) :  Y   << Введите Y для удаления анонимных пользователей 
Успех.
Обычно пользователю root должно быть позволено подключаться только из
«локальный хост». Это гарантирует, что кто-то не сможет угадать
пароль root из сети.
Запретить удаленный вход в систему root? (Нажмите y|Y для Да, любую другую клавишу для Нет) :  Y   << Введите Y, чтобы запретить удаленный вход в систему root 
Успех. 
По умолчанию MySQL поставляется с базой данных с именем «test», которая
любой может получить доступ. Это также предназначено только для тестирования,
и должны быть удалены перед переходом в производство
среда.
Удалить тестовую базу данных и доступ к ней? (Нажмите y|Y для Да, любую другую клавишу для Нет) :  Y   << Введите Y, чтобы удалить тестовую базу данных 
 - Удаление тестовой базы данных...
Успех.
 - Удаление привилегий на тестовой базе данных...
Успех.
Повторная загрузка таблиц привилегий гарантирует, что все изменения
сделанные до сих пор вступят в силу немедленно.
Перезагрузить таблицы привилегий сейчас? (Нажмите y|Y для Да, любую другую клавишу для Нет) :  Y   << Введите Y для перезагрузки таблиц привилегий 
Успех.
Все сделано!
 

Работа с сервером MySQL

Войдите на сервер MySQL с пользователем root и его паролем.

 mysql -u root -p 

Вывод:

 Добро пожаловать в монитор MySQL.