Перейти к содержимому
davidka.net > 💻 🧠 Код 1001 > Базы данных > Миграция с MySQL на MariaDB > ГЛАВА 6: Миграция пользователей и привилегий

ГЛАВА 6: Миграция пользователей и привилегий

  • автор:

Цель главы: Восстановить пользователей и их привилегии

← Предыдущая глава | Назад к оглавлению | Следующая глава →



1. Экспорт пользователей

1.1 Экспорт с MySQL сервера

#!/bin/bash
# export_users.sh

# Percona Toolkit (рекомендуется)
pt-show-grants --host=localhost --user=root --password > users.sql

2. Импорт в MariaDB

2.1 Базовый импорт

# Импорт пользователей
mariadb -u root -p < users.sql

# Проверка
mariadb -u root -p -e "SELECT User, Host, plugin FROM mysql.user;"

3. Обработка плагинов

3.1 Конвертация caching_sha2_password

-- Найти пользователей с sha2
SELECT User, Host, plugin 
FROM mysql.user 
WHERE plugin = 'caching_sha2_password';

-- Конвертировать
ALTER USER 'username'@'host' 
IDENTIFIED WITH mysql_native_password BY 'newpassword';

4. Настройка ролей

4.1 Создание ролей (MariaDB 10.1+)

-- Создать роли
CREATE ROLE developer;
GRANT SELECT, INSERT, UPDATE, DELETE ON app_db.* TO developer;

CREATE ROLE analyst;
GRANT SELECT ON app_db.* TO analyst;

-- Назначить роли
GRANT developer TO 'john'@'%';
SET DEFAULT ROLE developer FOR 'john'@'%';

FLUSH PRIVILEGES;

5. Проверка доступа

5.1 Тест подключений

#!/bin/bash
# test_user_connections.sh

# Файл: username:password:host
while IFS=: read user pass host; do
    echo "Testing: $user@$host"
    mariadb -h "$host" -u "$user" -p"$pass" -e "SELECT 'OK';" 2>&1
done < users_test.txt

Чек-лист

  • [ ] Пользователи экспортированы
  • [ ] Импорт в MariaDB выполнен
  • [ ] Плагины совместимы
  • [ ] Роли настроены
  • [ ] Доступ протестирован

→ ГЛАВА 7: Тестирование миграции

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *