====== 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
|
Вводим данные команды на новом сервере и на этом процедура переноса завершена.\\
Если требуется перенести большое количество пользователей, то можно сделать скрипт, что значительно ускорит процесс.