Pois é, a sugestão do João acho que atende. Outra opção é fazer do /home um link para o /usr/local, mas isso pode não te atender. Outra forma seria gerar um dump do mysql, substituir o texto no dump, que nada mais é que um arquivo texto (e aí tem inúmeras maneiras de substituir texto) e recarregar o dump, que em geral já tem tags SQL que removem e recriam os conteúdos todos. Ex (o dólar representa o prompt):
$ mysqldump --opt suabase -u usuario -p > dump.sql $ sed -i "" -e 's/home/usr\/local/g' dump.sql $ mysql -u usuario -p suabase < dump.sql Claro: mantenha um backup antes e certifique-se de que ninguém está acessando a base no momento da alteração. Um backup pode até ser uma cópia do dump.sql Claro também que isso só dará certo assumindo-se que não há a string "home" em outras partes da sua base. Se tiver, pode editar o dump.sql antes, que tem toda a base "suabase" e deixar apenas a tabela necessária. Abs, Cartola. Em 01/06/07, Joao Rocha Braga Filho<[EMAIL PROTECTED]> escreveu: > On 6/1/07, Rodrigo Lorenz <[EMAIL PROTECTED]> wrote: > > Saudações pessoal, > > > > Vou fazer a atualização de um servidor de e-mail com Qmail > > e estou usando vpopmail + mysql. Na presente instalação os > > domínios/usuários ficam dentro de /home/vpopmail/domains, portando a > > saída do SELECT na coluna pw_dir da tabela vpopmail fica assim por > > exemplo: > > > > +------------------------------------------------------------------------+ > > | pw_dir > > | > > +------------------------------------------------------------------------+ > > | /home/vpopmail/domains/testando.com.br/postmaster | > > | /home/vpopmail/domains/testando2.com.br/postmaster | > > | /home/vpopmail/domains/testando.com.br/megatherion | > > | /home/vpopmail/domains/testando2.com.br/megatherion | > > +------------------------------------------------------------------------+ > > 4 rows in set (0.00 sec) > > > > Nas ocorrências de "/home/" gostaria de substituir para "/usr/local/". > > Para alterar apenas um registro é fácil usando os comandos UPDATE, SET > > e WHERE, mas para alterar todos registros eu não estou conseguindo, e > > no meu caso são mais de 5.000 registros. Se alguém puder dar uma dica > > de como fazer eu agradeço. > > > > Obrigado a todos pela atenção > > > > Eu sei pouco de SQL, mas a sugestão seria um programa para ler todos > os registros, pegando este campo (só ele deve ser o suficiente), Modificando > a string e fazendo um UPDATE. > > Sugestõa dois, e talvez mais fácil. > > Faça uma query no mysql, salvando o resultado em um arquivo (acho > que opção tee), Depois rode o seguinte script: > > uniq < ARQUIVO | sort | uniq | sed 's/\(\/home\)\(.*\)/UPDATE pw_dir > FROM VALUES (\/usr\/local\2) WHERE pw_dir = \'\1\2\';/' | mysql > --user=... --password... banco_de_dados > > Nota, acima é uma linha só. > > PERIGO!!!!!!!!!!!!!!!!!! Não tenho certeza se toda a sintaxe acima está certa, > então sugiro testar em uma cópia antes. > > > Boa Sorte, > João Rocha. > > > > Rodrigo Lorenz > > ------------------------- > > Histórico: http://www.fug.com.br/historico/html/freebsd/ > > Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd > > > > > -- > "Sempre se apanha mais com as menores besteiras. Experiência própria." > > [EMAIL PROTECTED] > [EMAIL PROTECTED] > http://www.goffredo.eti.br > ------------------------- > Histórico: http://www.fug.com.br/historico/html/freebsd/ > Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd > ------------------------- Histórico: http://www.fug.com.br/historico/html/freebsd/ Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd