Clonare utenti mysql


mysql logo

Oggi mi é successo di dover migrare dei server web su delle nuove macchine, con relativi nuovi ip. Ho migrato utenti e siti come spiegato nell'ottimo articolo  di VIVEK GITE, ma mi sono imbattuto nel problema dei permessi sul server mysql, che mappa gli utenti come username piú ip di provenienza. Fare le modifiche a mano é improponibile, quindi mi sono studiato la struttura del database mysql e con due semplici query ho risolto il problema.

La prima crea gli utenti provenienti dal nuovo server:

insert into user
select 'nuovo_ip',User,Password,Select_priv,Insert_priv,Update_priv,Delete_priv,Create_priv,Drop_priv,Reload_priv,Shutdown_priv,Process_priv,File_priv,Grant_priv,References_priv,Index_priv,Alter_priv,Show_db_priv,Super_priv,Create_tmp_table_priv,
Lock_tables_priv,Execute_priv,Repl_slave_priv,Repl_client_priv,Create_view_priv,Show_view_priv,Create_routine_priv,Alter_routine_priv,Create_user_priv,Event_priv,Trigger_priv,ssl_type,ssl_cipher,x509_issuer,x509_subject,max_questions,
max_updates,max_connections,max_user_connections
from user
where Host='vecchio_ip'

La seconda clona i permessi relativi ai vari database:

insert into db
select 'nuovo_ip',Db,User,Select_priv,Insert_priv,Update_priv,Delete_priv,Create_priv,Drop_priv,Grant_priv,References_priv,Index_priv,Alter_priv,Create_tmp_table_priv,Lock_tables_priv,Create_view_priv,Show_view_priv,Create_routine_priv,
Alter_routine_priv,Execute_priv,Event_priv,Trigger_priv
from db
where Host='vecchio_ip'

Et voilá.