Testé sur Debian 5.0
Une petite fonction Bash bien pratique trouvée ici (un grand merci à l’auteur) qui permet d’afficher les privilèges utilisateurs d’un serveur MySQL. Très utile pour transférer les utilisateurs et leurs droits d’un serveur à l’autre.
Voici la fonction, à mettre dans son ~/bash_aliases ou ~/bashrc :
mygrants()
{
mysql -B -N $@ -e « SELECT DISTINCT CONCAT(
‘SHOW GRANTS FOR »’, user, »’@ »’, host, »’;’
) AS query FROM mysql.user » | \
mysql $@ | \
sed ‘s/\(GRANT .*\)/\1;/;s/^\(Grants for .*\)/## \1 ##/;/##/{x;p;x;}’
}
On l’utilise ainsi, sur le serveur source :
mygrants –user=admin –password=secret > privileges.sql
Il est ensuite possible d’éditer le fichier privileges.sql pour enlever les utilisateurs qu’on ne veut pas transférer, par exemple debian-sys-maint sur les machines Debian.
Ensuite, sur le serveur destination :
cat privileges.sql | mysql –user=admin –password=secret