Alterar o caminho existente do datadir

20

Eu quero mudar o datadircaminho no my.iniarquivo.

O datadircaminho existente éC:/ProgramData/MySQL/MySQL Server 5.1/Data/

O tamanho da minha C:unidade é de 30 GB e a pasta de dados do MySQL ocupa 25 GB. Então, eu quero mudar o datadirpara F:/naveen/data.

Isso é possível?

Minha máquina está executando o Windows Server 2003 .

naveen
fonte

Respostas:

26

Nos seus caminhos, posso assumir com segurança o seguinte:

  • Você está executando o MySQL no Windows
  • Você usou o MySQL MSI para instalar

O que você precisa fazer é estabelecer o arquivo my.ini

Ao instalar o MySQL para Windows usando o MSI, espera-se que o local do my.ini seja C:/ProgramData/MySQL/MySQL Server 5.1.

Por favor, execute o seguinte em uma janela do DOS:

cd C:/ProgramData/MySQL/MySQL Server 5.1
dir *.ini

Você verá alguns exemplos de arquivos my.ini. No entanto, se não houver um arquivo chamado my.ini nessa pasta, você deverá criar um. Se existe ou não, execute o seguinte:

cd C:/ProgramData/MySQL/MySQL Server 5.1
notepad my.ini

Se você for solicitado a criá-lo, faça-o.

Em seguida, crie a seguinte entrada no cabeçalho do grupo [mysqld] em my.ini:

[mysqld]
datadir=F:/naveen/data

Salvar my.ini

Em seguida, pare o mysql na linha de comando do DOS assim:

C:\> net stop mysql

Em seguida, faça uma cópia de toda a pasta de dados no novo local

C:\> xcopy "C:\ProgramData\MySQL\MySQL Server 5.1\data" F:\naveen\data /s

Última etapa, inicie o mysql

C:\> net start mysql

Tente fazer login no mysql. Depois de fazer o login no mysql com sucesso, execute este comando:

show variables like 'datadir';

Se F:\naveen\dataaparecer como o datadir, PARABÉNS, VOCÊ FEZ CERTO !!!

Quando estiver satisfeito com todos os aplicativos que executam o MySQL, você pode excluir tudo em C:\ProgramData\MySQL\MySQL Server 5.1\data\*

De uma chance !!!

RolandoMySQLDBA
fonte
Posso saber que as etapas acima funcionarão para o Windows Server 2008?
Funciona, mas provavelmente você receberá o erro 1067. Verifique as permissões no novo diretório
2
Às vezes, o serviço é registrado como MySQL57, você deve verificar primeiro.
giannis christofakis 01/12/2015
2
Cometi um erro noob e não copiei as permissões. O mysql não seria reiniciado. Tentei fornecer ao NETWORK SERVICE acesso total ao datadir (conforme outras sugestões online) e gerou erros de permissão. Se isso acontecer com você, dê a "Todos" o controle total dos subdiretórios de dados e herda os filhos. Em seguida, vá para a pasta pai (datadir), ative a herança por meio das permissões "Avançadas" e aplique a todos os filhos. Em seguida, você pode adicionar o SERVIÇO DE REDE ao seu datadir, fornecendo controle total e isso será propagado para os filhos.
Murraybiscuit #
2
Você deve usar em xcopy /O/X/E/H/Kvez de xcopy /Snesta resposta.
Ethan Allen