Original post: http://anothermysqldba.blogspot.com/2014/04/mysqluserclone-or-just-copy-mysql-users.html
Hace poco me encontré con un mensaje Foro MySQL que estaba buscando la manera de migrar los usuarios a un nuevo sistema.
Si bien esto podría hacerse de varias formas, pensé que me dio la oportunidad de jugar y una demostración de la mysqluserclone herramienta.
Así que tengo dos bases de datos y único usuario una wiki:
Así que ahora utilice la herramienta mysqluserclone
 
 Tenga en cuenta que le falta una contraseña porque no establece una contraseña para el usuario.  Opps que no es lo suficientemente bueno. 
Pero reconozco que funciona muy bien si quieres crear nuevas cuentas de usuario con contraseñas nuevas. Que pude pasar la nueva contraseña como parte del comando de clonación
 
Pero ¿qué pasa si no sé las contraseñas? Quiero asegurarme de que todos los clientes tienen todos sus mismas contraseñas.
Yo también podría hacer el proceso más adelante.
 
Ahora tengo el mismo usuario, host y contraseña.
Hace poco me encontré con un mensaje Foro MySQL que estaba buscando la manera de migrar los usuarios a un nuevo sistema.
Si bien esto podría hacerse de varias formas, pensé que me dio la oportunidad de jugar y una demostración de la mysqluserclone herramienta.
Así que tengo dos bases de datos y único usuario una wiki:
 root@localhost [(none)]> select VERSION(); 
 +------------+ 
 | VERSION()  | 
 +------------+ 
 | 5.6.10-log | 
 +------------+ 
 root@localhost [(none)]> show grants for wikiuser@localhost; 
 +-------------------------------------------------------------------------------------------------------------------+ 
 | Grants for wikiuser@localhost                                                                                     | 
 +-------------------------------------------------------------------------------------------------------------------+ 
 | GRANT USAGE ON *.* TO 'wikiuser'@'localhost' IDENTIFIED BY PASSWORD '1e09502e61120480'                            | 
 | GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, ALTER, LOCK TABLES ON `wikidb`.* TO 'wikiuser'@'localhost' | 
 +-------------------------------------------------------------------------------------------------------------------+ 
 
 select VERSION(); 
 +------------+ 
 | VERSION()  | 
 +------------+ 
 | 5.5.30-log | 
 +------------+ 
 show grants for wikiuser@localhost; 
 ERROR 1141 (42000): There is no such grant defined for user 'wikiuser' on host 'localhost' Así que ahora utilice la herramienta mysqluserclone
 Usage: mysqluserclone --source=user:pass@host:port:socket 
--destination=user:pass@host:port:socket joe@localhost 
sam:secret1@localhost 
 
 # mysqluserclone 
--source=root:<PASSWORD>@localhost:3306 
--destination=root:@localhost:3307 wikiuser@localhost wikiuser@localhost
 
 # Source on localhost: ... connected. 
 # Destination on localhost: ... connected. 
 # Cloning 1 users... 
 # Cloning wikiuser@localhost to user wikiuser@localhost 
 # ...done. 
 
 root@localhost [(none)]>  select VERSION(); 
 +------------+ 
 | VERSION()  | 
 +------------+ 
 | 5.5.30-log | 
 +------------+ 
 1 row in set (0.00 sec) 
 
 root@localhost [(none)]> show grants for wikiuser@localhost; 
 +-------------------------------------------------------------------------------------------------------------------+ 
 | Grants for wikiuser@localhost                                                                                     | 
 +-------------------------------------------------------------------------------------------------------------------+ 
 | GRANT USAGE ON *.* TO 'wikiuser'@'localhost'                                                                      | 
 | GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, ALTER, LOCK TABLES ON `wikidb`.* TO 'wikiuser'@'localhost' | 
 +-------------------------------------------------------------------------------------------------------------------+ 
 2 rows in set (0.00 sec) 
 Pero reconozco que funciona muy bien si quieres crear nuevas cuentas de usuario con contraseñas nuevas. Que pude pasar la nueva contraseña como parte del comando de clonación
 mysqluserclone --source=root:<PASSWORD>@localhost:3306 
--destination=root:@localhost:3307 wikiuser@localhost 
wikiuser:<PASSWORD>@localhost Pero ¿qué pasa si no sé las contraseñas? Quiero asegurarme de que todos los clientes tienen todos sus mismas contraseñas.
Yo también podría hacer el proceso más adelante.
- Reunir donaciones de DB 1
- Edite el archivo de becas Quiero mover
- Edite el archivo de usuario para agregar comentarios para hacer sql segura
- Cargue el archivo en DB 2
select CONCAT('SHOW GRANTS FOR `',USER,'`@',HOST,';') as showgrants FROM mysql.user INTO OUTFILE '/tmp/showgrants.sql'; 
 
 vi /tmp/showgrants.sql 
 
 mysql < /tmp/showgrants.sql  > /tmp/user_grants.sql 
 
 vi /tmp/user_grants.sql 
 :%s/Grants for/#Grants for/g 
 :%s/\n/;\r/g 
 mysql --port=3307  -u root -p  < /tmp/user_grants.sql 
 > show grants for wikiuser@localhost; 
 +----------------------------------------------------------------------------------------------------------+ 
 | Grants for wikiuser@localhost                                                                            | 
 +----------------------------------------------------------------------------------------------------------+ 
 | GRANT USAGE ON *.* TO 'wikiuser'@'localhost' IDENTIFIED BY PASSWORD '1e09502e61120480'                   | 
 | GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, ALTER, LOCK TABLES ON `wikidb`.* TO 'wikiuser'@'localhost' | 
 +----------------------------------------------------------------------------------------------------------+  Ahora tengo el mismo usuario, host y contraseña.
