Centos 7 настройка mysql: Установите MySQL на CentOS 7
Содержание
Как установить и настроить сервер кластер MySQL на CentOS 7
Заглавие
- Предпосылки
- Шаг 1 — Настройка узла управления
- A. Загрузка программного обеспечение кластера MySQL
- B. Установка и удаление пакетов
- C. Установка кластера MySQL
- D. Настройка кластера MySQL
- E. Старт узла управления
- Шаг 2 — Настройка в MySQL Cluster Data Nodes
- A. Войти как root пользователь и загрузить программное обеспечение кластера MySQL
- B. Установка и удаление пакетов
- C. Установить кластер MySQL
- D. Настройка узла данных
- E. Повторить шаг 2.А — 2.D на db3 сервере.
- Шаг 3 — Настройка SQL Node
- A. Вход в систему и загрузка кластера MySQL
- B. Установка и удаление пакетов
- C. Установка кластера MySQL
- D. Настройка SQL Node
- E. Повторить шаг 3.A — 3.D на DB5 сервере.
- Шаг 4 — Монитор кластера
- Шаг 5 — Тестирование кластера
- Вывод
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 для узлов данных.
- db2 = 192.168.1.221
- 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 узлов:
- DB4 = 192.168.1.223
- 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
Связаться с отделом продаж
Содержание
Вызов
Загрузите 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 пакета:[[email protected]]$ tar -xvf mysql-8.0.15-1.el7.x86_64.rpm-bundle.tar
Вызов
Установите сервер MySQL и зависимости с помощью команды `rpm`
В домашнем каталоге
cloud_user
используйте командуrpm
для установки сервера MySQL и зависимостей:[[email protected]]$ sudo rpm -Uvh mysql-community-{server,client,common,libs}-*
Вызов
Запуск сервера MySQL
Используйте
systemctl
для запуска службыmysqld
:[[email protected]]$ sudo systemctl start mysqld
Вызов
Обновите пароль для учетной записи суперпользователя на сервере 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> выход
Вызов
Защитите установку сервера 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.