Перенос пользователей MySQL со всеми назначенными правами к базам.
Шаг 1. Получаем список пользователей
mysql -u root -B -p -e "SELECT user, host FROM mysql.user" |
-u
- пользователь;-B
- batch
, выводит результаты запроса по одному на строке, используя табуляцию, как разделитель;-p
- запрос пароля из stdin
;-e
- команда;
Можно также использовать -N
, чтобы не выводить названия столбцов.
Вывод запроса будет приблизительно следующим:
user host |
Шаг 2. Получаем список прав
mysql -u root -p -B -N -e "SHOW GRANTS FOR 'userName'@hostName" |
username
- имя пользователя;hostname
- хост, полученный на предыдущем шаге;
Вывод будет приблизительно следующим:
[root@localhost ~]# mysql -u root -p -B -N -e "SHOW GRANTS FOR 'root'@localhost" |
Вводим данные команды на новом сервере и на этом процедура переноса завершена.
Если требуется перенести большое количество пользователей, то можно сделать скрипт, что значительно ускорит процесс.