Домашний сервер с Proxmox - поднял две ВМ и настроил между ними репликацию в MariaDB

Программистское

Наконец-то сделал то, что давно хотел - настроил репликацию в MySQL (MariaDB).
Для этого сначала поднял хост-систему с Proxmox по этому туториалу: https://dlford.io/how-to-home-lab-part-1/

Там поднял две виртуалки на Ubuntu и поставил на каждой из них по MariaDB:
sudo apt-get install mariadb-server -y
sudo mysql_secure_installation

Там поответчал "да" на всё, что можно.
Потом настроил в Проксмоксе фаерволл:
сначала включил его на самом верхнем уровне - у "датацентра", там же создал правило для входящих соединений, в "макро" выбрал "MySQL" (и галочку у "enabled" не забыл поставить).
То же самое сделал у единственной системы в моём датацентре, и углубился ещё дальше и аналогично разрешил доступ к 3306 порту у виртуалок.
После этого обнаружил, что даже при открытых портах, я не могу законнектиться к MySQL с другого хоста.
Чтобы побороть это, пришлось сделать две вещи:
1. Найти, где был прописан bind-address=127.0.0.1 (у MariaDB он лежит в /etc/mysql/mariadb.conf.d/50-server.cnf)и закомментировать его. Перезапустить сервер.
2. Создать юзера, у которого будет не только задан пароль и хост будет указан любой("%" то есть), но и способ авторизации будет не через сокет, а по паролю.
Для этого надо было сделать что-то такого плана - создать нового пользователя, указав у него любой хост, и прописав нужный нам пароль. После этого поменять ему способ авторизации, и снова задать пароль. Например:
GRANT ALL PRIVILEGES ON *.* TO 'my_user'@'%' IDENTIFIED BY 'my_password' WITH GRANT OPTION;
И после этого ещё указать, чтобы он авторизовался по паролю, а не через сокет:
UPDATE mysql.user SET plugin = 'mysql_native_password', authentication_string = PASSWORD('my_password') WHERE User = 'my_user';
FLUSH PRIVILEGES;

Таким образом я добился того, чтобы можно было коннектиться к базе извне. Заметьте, это всё вообще никак не влияет на репликацию. Просто я смогу потом своё веб-приложение захостить в отдельной виртуалке, а не городить всё в одной. Всё делается исключительно из спортивного интереса.

Так вот, с репликацией было достаточно просто - нашёл этот пост: http://www.clusterdb.com/mysql-cluster/get-mysql-replication-up-and-running-in-5-minutes
В процессе один раз неправильно указал адрес мастер-базы, и пару минут не мог понять, почему слейв всё никак не законнектится. Пришлось его стопнуть, повторить комманду для коннекта уже с правильным адресом, и заново зарустить слейв. После этого создал тестовую базу в мастере - она появилась и в слейве.

Дальше у меня в планах поднять несколько веб-нод,балансировщик нагрузки с nginx, отдельный инстанс с Redis, и накатить на всё это Magento2 с семпл датой, после чего тюнить базу, и создавать нагрузку на это всё при помощи jMeter.

Такие дела.
Немного про disavow и вред от некачественных ссылок
Немного про disavow и вред от некачественных
31.03.2020, Программистское
Горькое осознание бесперспективности хакинтоша на ноуте
Горькое осознание бесперспективности хакинтоша на
02.03.2020, Железячное
Apache/PHP на Линуксе - что делать, если не работает, как диагностировать?
Apache/PHP на Линуксе - что делать, если не
15.04.2020, Программистское
Почему iPad Pro - нифига не следующий компьютер
Почему iPad Pro - нифига не следующий компьютер
10.04.2020, Железячное
На чём локально запускать сайт в 2020 году, если кодишь на PHP под Windows?
На чём локально запускать сайт в 2020 году, если
24.02.2020, Программистское
Movie
В данной публикации отсутствуют комментарии !

Перед публикацией, советую ознакомится с правилами!

{login}

Твой комментарий..


Кликните на изображение чтобы обновить код, если он неразборчив

Оцените работу движка
Loading...

Нашли ошибку?
Вы можете сообщить об этом администрации.
Выделив текст нажмите CTRL+Enter