Mover usuários do MySQL de um servidor db para outro? [duplicado]

2

Eu tenho um servidor MySQL com appr. 6000 usuários do MySQL dentro. Agora estou configurando um servidor MySQL melhor em um servidor físico diferente e preciso transferir esses 6000 usuários MySQL do servidor antigo para o novo. Como posso fazer isso?

O importante é que permissões e senhas não devem mudar.

    
por Cem 10.10.2011 / 14:30

3 respostas

4

Descarregue a tabela mysql.user (e opcionalmente a tabela mysql.db) e substitua quaisquer referências específicas ao nome do host antigo pelo nome do novo host. Importe para o novo banco de dados do host e libere os privilégios.

Isso não é difícil, é?

    
por 10.10.2011 / 14:36
3

Por favor, tenha em mente que o mysql.user é diferente entre versões principais.

select count(1) from information_schema.columns
where table_schema='mysql' and table_name='user';

Esta consulta traz de volta

  • 37 para o MySQL 5.0
  • 39 para o MySQL 5.1
  • 42 para o MySQL 5.5.
  • Você não pode executar essa consulta no MySQL 4.x, mas execute desc mysql.user e você verá 31 colunas.

Na verdade, existem duas maneiras de transportar usuários com segurança de um banco de dados para outro, independentemente da versão do MySQL.

OPÇÃO 1 : use mk-show-grants strong> (Em breve será chamado pt-show-grants do Percona Toolkit)

Isso despeja todos os MySQL Grants como instruções SQL, que são completamente portáveis para qualquer instância do MySQL 5.x.

OPÇÃO 2 : Execute estes comandos (minha emulação pessoal do que mk-show-grants faz)

mysql -hhostaddr -umyuserid -pmypassword --skip-column-names -A -e"SELECT CONCAT('SHOW GRANTS FOR ''',user,'''@''',host,''';') FROM mysql.user WHERE user<>''" | mysql -hhostaddr -umyuserid -pmypassword --skip-column-names -A | sed 's/$/;/g' > MySQLUserGrants.sql

O MySQLUserGrants.sql resultante de qualquer opção pode simplesmente ser executado e as tabelas de permissões são preenchidas corretamente.

    
por 11.10.2011 / 21:15
0

Você pode fazer o que syccbean explicar pelo phpMyAdmin, se quiser. Vá na guia de exportação e escolha exportar o banco de dados mysql (com user table AND db table se você deseja manter as permissões).

    
por 10.10.2011 / 15:06

Tags