Как установить MySQL Cluster на Ubuntu 16.04

На этой странице
MySQL Cluster представляет собой технологию для обеспечения высокой доступности для баз данных MySQL. Он использует NDB (Network DataBase) или NDB кластер в качестве двигателя для хранения базы данных. MySQL Cluster разработан как мульти-мастер ACID архитектуры без единой точки отказа, он использует автоматический шардинг (секционирование) для масштабирования чтения и записи процессов.
Для реализации кластера MySQL, нам нужно 3 различных типов узлов:
- Узел управления ( ndb_mgmd )
- Используется для мониторинга и настройки кластера.
- Узел данных ( NDBD )
- Эти узлы используются для хранения данных, они обеспечивают автоматический шардинг и может обрабатывать репликацию.
- SQL Node ( mysqld )
- интерфейсы MySQL сервер для подключения ко всем узлам.
На этом уроке мы покажем вам, как установить «MySQL Cluster» на Ubuntu 16.04 LTS (Xenial Xerus).
Предпосылки
- 4 узла с сервером Ubuntu 16.04
- 192.168.2.21 — управление узлами
- 192.168.2.22 — узел данных
- 192.168.2.23 — узел данных
- 192.168.2.24 — SQL-узел
- Root привилегии на узлах.
Шаг 1 — Установка и настройка узла управления
На этом шаге мы установим узел управления для нашего кластера с IP адресом 192.168.2.21. Мы устанавливаем программное обеспечение кластера MySQL и настроем его в качестве узла управления для кластера.
Войти на узел управления с SSH:
ssh root@192.168.2.21 TYPE YOUR PASSWORD
A. Установка управление узла кластера MySQL
Откроем сайт кластера MySQL здесь и выберем опцию » Linux-generic» и загрузим 64-битный пакет, нажав кнопку » Download«.
Загрузим пакет кластера MySQL с помощью wget и извлечем его.
wget http://dev.mysql.com/get/Downloads/MySQL-Cluster-7.4/mysql-cluster-gpl-7.4.12-linux-glibc2.5-x86_64.tar.gz tar -xzvf mysql-cluster-gpl-7.4.12-linux-glibc2.5-x86_64.tar.gz
Переименуем директорию для MySQL:
mv mysql-cluster-gpl-7.4.12-linux-glibc2.5-x86_64/ mysql/
Перейдем в каталог mysql и скопируем 2 двоичных файла для команды управления кластером » ndb_mgmd и ndb_mgm ‘к директории ‘/usr/local/bin/’, а затем сделаем их исполняемым с помощью команды chmod.
cd ~/mysql/ cp bin/ndb_mgm* /usr/local/bin/ chmod +x /usr/local/bin/ndb_mgm*
B. Настройка MySQL Cluster Node Management
Настройте узел управления путем создания нового каталога ‘MySQL-cluster» для конфигурационных файлов в каталоге ‘/var/lib/’.
Создание каталог ‘MySQL-cluster» и создайте новую конфигурацию «config.ini» в каталоге:
mkdir -p /var/lib/mysql-cluster/ vim /var/lib/mysql-cluster/config.ini
Вставьте ниже конфигурацию:
[ndbd default] NoOfReplicas=2 DataMemory=80M IndexMemory=18M [mysqld default] [ndb_mgmd default] [tcp default] # Управления кластера / узле управления [ndb_mgmd] hostname=192.168.2.21 # Узел данных 1 [ndbd] hostname=192.168.2.22 DataDir= /var/lib/mysql-cluster # Узел данных 1 [ndbd] HostName=192.168.2.23 DataDir=/var/lib/mysql-cluster # Узел SQL [mysqld] hostname=192.168.2.24 # Если вы хотите добавить новый узел SQL [mysqld]
Изменение IP-адреса ndb_mgmd для управления, NDBD для узла данных и mysqld для узла SQL, чтобы соответствовать вашим настройкам.
Сохраните файл и выйдите.
Затем запустите процесс узла управления с командой ниже:
ndb_mgmd -f /var/lib/mysql-cluster/config.ini --configdir=/var/lib/mysql-cluster/
Запускаться будет во время загрузки, добавив команду ‘/etc/rc.local ‘:
echo 'ndb_mgmd -f /var/lib/mysql-cluster/config.ini --configdir=/var/lib/mysql-cluster/' >> /etc/rc.local
Вы увидите результат:
MySQL Cluster Management Server MySQL-5.6.31 NDB-7.4.12
Проверьте узел управления с помощью следующей команды:
# Checking port 1186 used by ndb_mgmd netstat -plntu # Проверка узла управления готов ndb_mgm show
Шаг 2 — Установка и настройка узла данных
На этом шаге мы установим программное обеспечение кластера MySQL и настроем его в качестве узла данных. Мы будем использовать 2 сервера Ubuntu 16.04 в качестве узлов данных: узел с IP-адресом 192.168.2.22 и узел данных с IP-адреса 192.168.2.23.
Войдите на первый сервер данных с помощью SSH:
ssh root@192.168.2.22
A. Установите MySQL Cluster на узле
Перед тем , как установить программное обеспечение кластера MySQL, мы должны установить новый пакет ‘ libaio1‘ и создадим нового пользователя и группу MySQL. Выполните команду ниже в качестве root:
apt-get install libaio1 groupadd mysql useradd -g mysql mysql
Теперь загрузите пакет кластера MySQL ‘Linux-Generic ‘, разархивируйте и переименуйте каталог в MySQL.
wget http://dev.mysql.com/get/Downloads/MySQL-Cluster-7.4/mysql-cluster-gpl-7.4.12-linux-glibc2.5-x86_64.tar.gz tar -xzvf mysql-cluster-gpl-7.4.12-linux-glibc2.5-x86_64.tar.gz mv mysql-cluster-gpl-7.4.12-linux-glibc2.5-x86_64/ mysql/
Переместите каталог ‘MySQL’ в ‘/usr/local/’ и перейдите в этот каталог.
mv mysql /usr/local/ cd /usr/local/mysql/
Запустите скрипт для создания системных баз данных:
./scripts/mysql_install_db --user=mysql
Если нет ошибок, скопируйте файл службы MySQL в каталог ‘/etc/init.d‘ и добавьте MySQL сценарий запуска для запуска во время загрузки.
cp support-files/mysql.server /etc/init.d/mysql systemctl enable mysql
Затем переместите все MySQL двоичные команды в директорию ‘/usr/local/bin‘ и создайте новую символическую ссылку.
mv bin/* /usr/local/bin/ rm -rf bin/ ln -s /usr/local/bin /usr/local/mysql/
Изменение владельца каталога mysql в каталоге на пользователя root и группу MySQL, а также изменить каталог данных в MySQL в качестве владельца.
chown -R root:mysql . chown -R mysql data
B. Настройка MySQL Cluster Data Node
Создание новый конфигурационный файл MySQL ‘ my.cnf ‘ с помощью vim:
vim /etc/my.cnf
Вставьте конфигурацию в файл:
# MySQL Config [mysqld] datadir=/usr/local/mysql/data socket=/tmp/mysql.sock user=mysql # Run ndb storage engine ndbcluster # IP address management node ndb-connectstring=192.168.2.21 [mysql_cluster] # IP address management node ndb-connectstring=192.168.2.21 # MySQL Pid and Log [mysqld_safe] log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid
Сохраните и выйдите.
Создайте новый каталог для узла данных и измените владельца на пользователя MySQL.
mkdir -p /var/lib/mysql-cluster/ chown -R mysql /var/lib/mysql-cluster
C. Запуск MySQL на узле Data
Запустите службу MySQL с командой ниже:
ndbd --initial systemctl start mysql
Убедитесь, что нет никакой ошибки, и результаты приведены ниже (data-node2):
MySQL на узле данных запускается. Теперь вы можете установить пароль MySQL с помощью следующей команды:
mysql_secure_installation
или получить доступ к оболочке MySQL.
mysql -u root -p
Примечание :
Повторить этот шаг на «data-node2» IP — адрес сервера 192.168.2.23.
Шаг 3 — Установка и настройка SQL Node
На этом этапе мы будем устанавливать программное обеспечение кластера MySQL и настроем его в качестве SQL Node. Этот узел используется для доступа к базам данных на узлах данных. Процесс установки такой же, как узел данных, но мы не должны запускать службу NDBD в SQL Node.
Войдите в SQL Node с SSH:
ssh root@192.168.2.24
A. Установите MySQL Cluster на узле SQL
Установите пакет libaio1 и создайте нового пользователя и группу MySQL:
apt-get install libaio1 groupadd mysql useradd -g mysql mysql
Загрузите пакет MySQL Cluster с сайта, разархивируйте и переименуйте его:
http://dev.mysql.com/get/Downloads/MySQL-Cluster-7.4/mysql-cluster-gpl-7.4.12-linux-glibc2.5-x86_64.tar.gz tar -xzvf mysql-cluster-gpl-7.4.12-linux-glibc2.5-x86_64.tar.gz mv mysql-cluster-gpl-7.4.12-linux-glibc2.5-x86_64/ mysql/
Переместите каталог MySQL:
mv mysql /usr/local/ cd /usr/local/mysql/
Запустите скрипт mysql_install_db:
./scripts/mysql_install_db --user=mysql
Скопируйте файл службы и добавьте его в автозагрузку:
cp support-files/mysql.server /etc/init.d/mysql systemctl enable mysql
Переместите все бинарные файлы MySQL на каталог ‘/usr/local/bin‘:
mv bin/* /usr/local/bin/ rm -rf bin/ ln -s /usr/local/bin /usr/local/mysql/
Измените владельца всех файлов и директории:
chown -R root:mysql . chown -R mysql data
B. Настройка MySQL Cluster Node SQL
Создайте новый конфигурационный файл my.cnf с помощью vim:
vim /etc/my.cnf
Вставьте конфигурацию в файл:
# Конфигурация MySQL [mysqld] datadir=/usr/local/mysql/data socket=/tmp/mysql.sock user=mysql # Запустить механизм хранения ndb ndbcluster # IP address узла управления ndb-connectstring=192.168.2.21 [mysql_cluster] # IP address узла управления ndb-connectstring=192.168.2.21 # MySQL Pid and Log [mysqld_safe] log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid
Сохраните и выйдите.
C. Запустите SQL Node
Запустите узел SQL, запустив службу MySQL с помощью команды systemctl:
systemctl start mysql
SQL Узел запускается, теперь вы можете настроить пароль для MySQL.
mysql_secure_installation
Шаг 4 — Тестирование
Тест, чтобы создать новую базу данных для узла SQL.
mysql -u root -p TYPE PASSWORD create database nanana;
Убедитесь, что база данных реплицируется на серверах данных узлов.
И когда узел выключен, другой узел будет обрабатывать соединение с узлом SQL.
mysql -u root -p TYPE PASSWORD show databases;
Проверка состояния кластера из узла управления:
ndb_mgm show
Шаг 5 — Дополнительные советы
Выполнение безопасную перезагрузку и выключения кластера.
Перейдите к узлу управления кластером и введите приведенную ниже команду для выключения кластера:
ndb_mgm shutdown
Команда завершит работу всех услуг NDB по узлам данных.
Если вы хотите запустить кластер снова, вы можете запустить команду ниже на узле управления:
ndb_mgmd -f /var/lib/mysql-cluster/config.ini --configdir=/var/lib/mysql-cluster/
Выполните команду ниже на всех узлах данных:
ndbd systemctl start mysql
Затем запустите MySQL службы на узле (ы) SQL:
systemctl start mysql
Теперь ваш MySQL Cluster работает снова.
Справка
- http://dev.mysql.com/downloads/cluster/
- https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster.html