File: //scripts.20110531.215904.25158/transfermysqlusers
#!/usr/bin/perl
# cpanel - scripts/transfermysqlusers Copyright(c) 2010 cPanel, Inc.
# All rights Reserved.
# copyright@cpanel.net http://cpanel.net
# This code is subject to the cPanel license. Unauthorized copying is prohibited
BEGIN { unshift @INC, '/usr/local/cpanel'; }
use strict;
use warnings;
use Cpanel::MysqlUtils ();
use Cpanel::CachedDataStore ();
if ( !Cpanel::MysqlUtils::is_remote_mysql() ) {
exit;
}
my $map_dir = '/var/cpanel/databases';
opendir( my $dir_fh, $map_dir ) or do {
print "Unable to open $map_dir";
exit 1;
};
my @grant_files = map { "$map_dir/$_" }
grep { /^grants(.*)\.yaml$/ }
grep { !/^\.\.?$/ } readdir($dir_fh);
my @user_grants;
foreach my $yaml_file (@grant_files) {
my $data = Cpanel::CachedDataStore::load_ref($yaml_file);
foreach my $dbowner ( keys %{ $data->{'MYSQL'} } ) {
foreach my $dbuser ( keys %{ $data->{'MYSQL'}{$dbowner} } ) {
foreach my $grant ( @{ $data->{'MYSQL'}{$dbowner}{$dbuser} } ) {
next unless $grant =~ /IDENTIFIED BY PASSWORD/;
push @user_grants, $grant;
}
}
}
}
foreach my $grant (@user_grants) {
Cpanel::MysqlUtils::sqlcmd($grant);
}