на сервере с которого нужно перенести пользователей создаем хранимую процедуру:
после чего выполняем её в консоли и записываем в файл:
И подготавливаем файл для выполнения в mysql:
Заливаем в базу:
CREATE DEFINER=`alexk`@`%` PROCEDURE `showGrants`()
LANGUAGE SQL
NOT DETERMINISTIC
CONTAINS SQL
SQL SECURITY DEFINER
COMMENT ''
BEGIN
DECLARE v VARCHAR(64) CHARACTER SET utf8;
DECLARE c CURSOR FOR
SELECT DISTINCT CONCAT(
'SHOW GRANTS FOR ''', user, '''@''', host, ''';'
) AS query FROM mysql.user;
DECLARE EXIT HANDLER FOR NOT FOUND BEGIN END;
OPEN c;
WHILE TRUE DO
FETCH c INTO v;
SET @v = v;
PREPARE stmt FROM @v;
EXECUTE stmt;
END WHILE;
CLOSE c;
END
после чего выполняем её в консоли и записываем в файл:
mysql -h <host> -u <user> -b <db> -p -e "call showGrants" > grants
И подготавливаем файл для выполнения в mysql:
cat grants | awk '{if ($1 != "Grants") print $0,";"}' > grants
Заливаем в базу:
cat grants | mysql -h <host> -u <user> -p