quinta-feira, 24 de maio de 2012

Tutorial - Alterando a partição da Base de Dados do Mysql para outra pasta/partição.

Voltei após muito tempo...
E desta vez, volto com Mysql. Veja este pequeno e simples tutorial para muda a base de diretório... 
Usem como quiser o Tutorial, foi totalmente desenvolvido por mim.
Se desejar colocar em seu site e puder deixar uma citação eu agradeço.
Existem momentos que é necessária trocar a base do mysql de diretório, seja por motivo de segurança, seja por motivo de falta de espaço e até mesmo para ganho de performance (Quando a base está numa partição separada da partição do windows por exemplo, existe ganho de performance. Se você está passando por isto, e não sabe como fazer... Leia abaixo o...
 
Procedimento para alterar a partição da Base de Dados do Mysql para outra pasta/partição.

Versão de teste: Windows XP – Mysql 5.5

Atenção, as pastas podem variar dependendo da versão do mysql, porém, será facil descobrir o caminho da instalação, quando depois de logado usando o comando: show variables where value like 'C:%';  Verifique o diretório no campo 'value'
Existe uma lista de erros conhecidos com soluções no final do arquivo.

1 - Conecte na base com privilégios de administrador e execute o seguinte comando:
(Para conectar, abra o prompt do DOS e execute o comando mysql -u root -p (será solicitada a senha de administrador.

2 - Após conectado digite o comando: show databases; (Anote o nome das bases para futura verificação).

3 -Execute o próximo comando: show variables where value like 'C:%';

O resultado deverá ser como o exibido abaixo na Figura 1:



4 - Desconecte do Banco de Dados com o comando: exit;

5 - Crie um backup dos arquivos data. (copiando e colando os arquivos que estão na pasta: C:\ProgramData\MySQL\MySQL Server 5.5\Data\  )

6 - Gere também outro backup (Dump Full) No prompt de DOS digite:  mysqldump --all-databases -u root -p  > c:\caminho\backup.sql
Atenção: Será pedido a senha de root informe-a.

7 - Crie a pasta para onde os arquivos de dados serão movidos: ex.: E:\MYSQL\DATA\

8 - Pare o Banco de dados: na linha de comando digite: net stop mysql

9 - Abra o arquivo my.ini (com um editor de texto comum, como o bloco de notas por exemplo) em: (C:\Program Files (x86)\MySQL\MySQL Server 5.5\)

10 - Dentro do arquivo comente a linha abaixo usando o (#)
            datadir="C:/ProgramData/MySQL/MySQL Server 5.5/Data/"
11 - Ficará assim:
            #datadir="C:/ProgramData/MySQL/MySQL Server 5.5/Data/"

13 - Coloque abaixo desta linha o novo caminho dos arquivos de dados conforme abaixo na Figura1:
Obs.: use a  / para indicar o diretório.


  Figura 2

Cuidado para não alterar a linha onde fica o basedir.
14 - Salve o arquivo e feche-o.
Caso ainda não tenha criado, crie o caminho que foi identificado na linha datadir:
No nosso exemplo ficou: E:\MYSQL\DATA\
Altere conforme a sua necessidade.

15 - Copie todos os arquivos da pasta: C:\ProgramData\MySQL\MySQL Server 5.5\Data\
A pasta C:\ProgramData está oculta.

para a pasta  E:\MYSQL\DATA\

16 - Restarte o serviço com comando net start mysql

17 - Reconecte na base com privilégios de administrador e execute o seguinte comando:
(Para conectar, abra o prompt do DOS e execute o comando mysql -u root -p (será solicitada a senha de administrador)). Após conectado digite o comando:
 show variables where value like 'C:%' or value like 'E:%';
(Atenção: no comando a cima a letra E é a letra da unidade, que é a do exemplo deste tutorial, troque-a conforme a sua necessidade.)

Deverá ficar conforme mostrado na Figura 3:


Figura 3


18 - Verifique se as bases estão corretas: (Conectado ao Banco de Dados) Use o comando: show databases;
Verifique se são as mesmas bases e se estão como estavam antes.

19 - Após confirmar que está tudo correto, não se esqueça de deletar os arquivos na pasta antiga. (Poderá deletar os backups também.) Não esqueça que o seu banco de deve ter rotina de backup sempre. :D

Os diretórios que ficaram listados na consulta que estão na letra C:\  são os arquivos de instalação do Mysql. Não se preocupe com eles.

Pronto os arquivos da base já foram trocados de partição e pasta.

Estes passos são o suficiente para trocar as bases do Banco de Dados de pastas.





POSSÍVEIS ERROS:


Atenção: Caso ocorra o erro  abaixo ao tentar logar ou reiniciar o serviço do mysql:
--------------------------------------------------------

A system error has occurred.
System error 1067 has occurred.
The process terminated unexpectedly.
--------------------------------------------------------
Verifique o arquivo my.ini e veja se o caminho que foi alterado está correto. Caso contrário, conserte-o.



Jefferson Silva. - DBA

6 comentários:

  1. Amigo, o meu está dando esse erro que você comentou, e está correto, tem algo haver com a questão de privilégios?

    me responda qualquer coisa: "raphael-toad@hotmail.com"

    ResponderExcluir
    Respostas
    1. Bom, sei que já faz tempo, mas pode ajudar alguém que tenha o mesmo problema. Segui o tutorial e ocorreu o erro 1067, no meu caso, configurei permissão total na pasta data (novo local) para o usuário NETWORK SERVICE e o serviço foi iniciado corretamente.

      Excluir
  2. Excelente.

    Obrigado.

    No meu caso deu tudo certo.

    Só tive um problema, que já consegui resolver, mas vou mencionar para ajudar quem possa tê-lo.

    Ao tentar parar o servidor mysql, com o comando: net stop mysql, deu esse erro: Erro de sistema 5 - acesso negado.

    Para resolver isso, deve-se executar o cmd ou prompt de comando em modo de administrador, para tanto, procure no menu do windows, em acessórios, e ao encontrá-lo, clique com o botão direito do mouse, neste menu, na segunda opção é a de executá-lo como administrador.

    Ah, e na hora de editar o my.ini tive o mesmo problema, mesmo com o servidor mysql parado. Então, deve-se executar o editor de texto também como administrador, pode ser o bloco de notas mesmo.

    Espero ter ajudado.

    ResponderExcluir
  3. Mesmo após tanto tempo venho agradecer aos amigos que responderam ao post.

    ResponderExcluir
  4. ótimo post! Funcionou bem para mim!

    ResponderExcluir
  5. O meu deu um erro semelhante eu liberei a permissão no servidor so assim consegui contornar a situação

    ResponderExcluir

Deixe seu comentário para a "Equipe Designer":