Установка и настройка MariaDB, phpMyAdmin, пользователей и репликации
🛠️ Установка и настройка MariaDB, phpMyAdmin, пользователей и репликации
Полный мануал по работе с MariaDB: установка, настройка phpMyAdmin, создание таблиц, пользователей с разными правами, сброс пароля root и репликация (master/slave).
📦 1. Установка MariaDB
sudo yum install mariadb mariadb-server -y sudo systemctl enable --now mariadb sudo mysql_secure_installation
Ответы на вопросы:
- 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 установлен, и репликация настроена 🛠️