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