====== MySQL Перенос пользователей со всеми правами ====== Перенос пользователей MySQL со всеми назначенными правами к базам. ===== Шаг 1. Получаем список пользователей ===== | mysql -u root -B -p -e "SELECT user, host FROM mysql.user" | ''-u'' - пользователь; ''-B'' - ''batch'', выводит результаты запроса по одному на строке, используя табуляцию, как разделитель; ''-p'' - запрос пароля из ''stdin''; ''-e'' - команда; Можно также использовать ''-N'', чтобы не выводить названия столбцов. Вывод запроса будет приблизительно следующим: | user host root 127.0.0.1 root ::1 database1 localhost database2 localhost database3 localhost database4 localhost | ===== Шаг 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" Enter password: GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY PASSWORD '*5FNF5A45F36FE0C09FE6226B4DB3AEE8J0FYT4CB' WITH GRANT OPTION GRANT PROXY ON ''@'%' TO 'root'@'localhost' WITH GRANT OPTION | Вводим данные команды на новом сервере и на этом процедура переноса завершена.\\ Если требуется перенести большое количество пользователей, то можно сделать скрипт, что значительно ускорит процесс.