lunes, 10 de junio de 2013

Migrar usuarios y permisos de un servidor a otro #MySQL

Bueno, no siempre llevare un órden con los blogs que les vaya dejando, dado que algunos se me van presentando en la vida diaria, entonces los voy a venir postiando a como se presenten, abra post sencillos y otros mas extraños, no en orden.

En estos días se me presento el hecho de migrar unos usuarios desde un servidor a otro, y apesar de que existen varias formas yo les voy a presentar una:

Primero que nada vamos a requerir obtener los usuarios del servidor ORIGEN y a las base de datos que tienen acceso, para esto ejecutamos lo siguiente y nos genera un archivo de salida (usuarios_bds.sql)

mysql "SELECT DISTINCT CONCAT('SHOW GRANTS FOR ''', user, '''@''', host, ''';') AS query FROM mysql.user;" > usuarios_bds.sql

ó internamente, consultando la base de datos mysql:

SELECT DISTINCT CONCAT('SHOW GRANTS FOR ''', user, '''@''', host, ''';') AS query FROM mysql.user;

El resultado se ejecuta, y se manda a otro nuevo archivo(privilegios_usuarios.sql), que ya vendrian siendo los privilegios que se estan migrando:

mysql -u root -p -Bse "SOURCE usuarios_bds.sql" > privilegios_usuarios.sql

Por ultimo en el servidor donde se migran los usuarios(DESTINO) se ejecuta el archivo de algunas de las siguientes dos formas:

Forma 1:
mysql -u root -p -Bse "SOURCE privilegios_usuarios.sql"

Forma 2:
mysql -u root -p -Bse < privilegios_usuarios.sql;



En el camino me encontré tambien que copiando todas las base de datos con un:

mysqldump -u root -p --all-databases > dump_completo.sql

Se copia el archivo y luego se hace un restore de ellas

mysql -u root -p < dump_completo.sql

Por ultimo hay que actualizar las contraseñas si se quisiese:

update user set password=PASSWORD("nuevacontrasenia") where User='usuario';

Refrescamos los privilegios y listo:

Flush privileges;

Saludos y espero les sirva..

No hay comentarios.:

Publicar un comentario