Установка и настройка MariaDB, phpMyAdmin, пользователей и репликации
🛠️ Установка и настройка MariaDB, phpMyAdmin, пользователей и репликации
Полный мануал по работе с MariaDB: установка, настройка phpMyAdmin, создание таблиц, пользователей с разными правами, сброс пароля root и репликация (master/slave).
📦 1. Установка MariaDB
Ответы на вопросы:
- Switch to unix_socket authentication? → n
- Remove anonymous users? → n
- Disallow root login remotely? → n
- Remove test database? → y
- Reload privilege tables? → y
🌐 2. Установка phpMyAdmin и настройка Apache
sudo yum install php php-mysqlnd httpd epel-release phpmyadmin -y
sudo systemctl enable --now httpd
Настройка доступа:
sudo vim /etc/httpd/conf.d/phpMyAdmin.conf
Измените:
- добавьте
Require all grantedвнутри<RequireAny> - или добавьте ваш IP (
Require ip X.X.X.X)
🗃️ 3. Создание базы и таблицы
mysql -u root -p
CREATE DATABASE cafeparis;
USE cafeparis;
-- Шаг 3.1
CREATE TABLE menu (
ID INT AUTO_INCREMENT PRIMARY KEY
);
-- Шаг 3.2
ALTER TABLE menu
ADD COLUMN NAME VARCHAR(20),
ADD COLUMN COMPOSITION VARCHAR(20),
ADD COLUMN CUISINE VARCHAR(20),
ADD COLUMN IMPORTANTOKNOW VARCHAR(20);
-- Шаг 3.3
ALTER TABLE menu ADD COLUMN CREATED TIMESTAMP DEFAULT CURRENT_TIMESTAMP;
👥 4. Создание пользователей
CREATE USER 'chief'@'%' IDENTIFIED BY '123';
CREATE USER 'souschief'@'localhost' IDENTIFIED BY '123';
CREATE USER 'cook'@'%' IDENTIFIED BY '123';
🔐 Права пользователей:
chief— полный доступ:
GRANT ALL PRIVILEGES ON *.* TO 'chief'@'%' WITH GRANT OPTION;
souschief— только SELECT и только с localhost:
GRANT SELECT ON cafeparis.* TO 'souschief'@'localhost';
cook— SELECT, UPDATE, DELETE из любой точки:
GRANT SELECT, UPDATE, DELETE ON cafeparis.* TO 'cook'@'%';
- Разные права с разных IP:
CREATE USER 'cook'@'192.168.1.100' IDENTIFIED BY '123';
GRANT SELECT ON cafeparis.* TO 'cook'@'192.168.1.100';
CREATE USER 'cook'@'192.168.1.200' IDENTIFIED BY '123';
GRANT SELECT, UPDATE, DELETE ON cafeparis.* TO 'cook'@'192.168.1.200';
Проверка роли — при подключении будет применяться наиболее точное совпадение (user@ip > user@%).
FLUSH PRIVILEGES;
🔄 5. Сброс пароля root в MariaDB
sudo systemctl stop mariadb
sudo mysqld_safe --skip-grant-tables &
mysql -u root
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('pas321');
FLUSH PRIVILEGES;
EXIT;
sudo killall -9 mysqld_safe
sudo systemctl start mariadb
🌐 6. Репликация Master-Slave (общее представление)
📌 На Master:
sudo vim /etc/my.cnf.d/mariadb-server.cnf
Добавьте:
[mysqld]
bind-address=0.0.0.0
server-id=1
log_bin=mysql-bin
binlog_do_db=cafeparis
sudo systemctl restart mariadb
Создайте пользователя для репликации:
CREATE USER 'replica'@'%' IDENTIFIED BY 'replica_pass';
GRANT REPLICATION SLAVE ON *.* TO 'replica'@'%';
FLUSH PRIVILEGES;
Получите текущие координаты:
SHOW MASTER STATUS;
📍 На Slave:
sudo vim /etc/my.cnf.d/mariadb-server.cnf
[mysqld]
server-id=2
relay_log=relay-bin
log_bin=mysql-bin
read_only=1
sudo systemctl restart mariadb
Подключение к мастер-серверу:
CHANGE MASTER TO
MASTER_HOST='master_ip',
MASTER_USER='replica',
MASTER_PASSWORD='replica_pass',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=XXX;
START SLAVE;
SHOW SLAVE STATUS\G
🎯 Готово! MariaDB работает, пользователи созданы, phpMyAdmin установлен, и репликация настроена 🛠️