Como alterar o diretório de dados MySQL em um ambiente UNIX ou similar
Siga estas etapas para mudar seu diretório de dados do MySQL:
-
Faça login no servidor usando PuTTY ou seu cliente preferencial.
Se você estiver usando uma partição dedicada para o diretório de dados, certifique-se de montar a nova partição no lugar do diretório de dados original depois de copiar os dados. A montagem de uma nova partição salva alterações de configuração fora do padrão com as quais alguns aplicativos podem não funcionar.
-
Encerrar
mysqld(daemon MySQL). O processo para iniciar e parar o daemon pode diferir entre diferentes sistemas operacionais e distribuições. MySQL deve ser interrompido durante qualquer processo que afete diretamente os arquivos brutos./etc/init.d/mysql stopOU
/etc/init.d/mysqld, /etc/init.d/mysql-server, /usr/loca/etc/init.d/mysql, /opt/lamp… -
Faça backup de seu banco de dados antes de fazer quaisquer mudanças. Certifique-se de que o daemon MySQL não esteja em execução ao fazer cópias diretas dos arquivos de banco de dados brutos.
Se você usar o cPanel no servidor, pare o cPanel (TailWatch e chkservd) antes que o daemon seja reiniciado. É possível criar um arquivo temporário /etc/chkserv.d/mysqlisevil para impedir o chkservd de reiniciar o serviço.
Se você não estiver familiarizados com rsync, será possível usar qualquer outra ferramenta para criar o seu backup.
rsync -vaP /var/lib/mysql/ /var/lib/mysql.'date +%s'
-
Crie o diretório de dados e forneça a propriedade do usuário do MySQL (ou de qualquer usuário especificado em seu arquivo de opção global 'my.cnf'). Neste exemplo, o local
/var/lib/mysql-dataé usado, mas é possível usar qualquer local desejado. Se você estiver incluindo um disco ou dispositivo lógico especificamente para essa finalidade, também precisará adicionar a entrada/etc/fstabe montar o diretório antes de continuar.chown mysql:mysql /var/lib/mysql-data -
Faça uma cópia final do diretório original para o novo MySQL diretório de dados (certifique-se de manter o final
/no final do primeiro diretório):rsync -vaP /var/lib/mysql/ /var/lib/mysql-data -
Certifique-se de que o novo diretório de dados tenha a propriedade correta, seja o usuário e grupo padrão MySQL ou o usuário especificado em seu arquivo de opção global 'my.cnf'. Se não tiver certeza, será possível usar o comando a seguir para possuir recursivamente toda a hierarquia para o usuário e o grupo do MySQL.
chown -R mysql:mysql /var/lib/mysql-data
O usuário MySQL precisa ter permissão total (rwx) para as pastas de banco de dados e permissão de leitura/gravação para o log, bin, dados, índice e arquivos de formulário.
Geralmente, as pastas do banco de dados têm uma permissão de 700 (drwx------) e estão sob a propriedade de mysql:mysql enquanto em um ambiente de hospedagem compartilhado. A permissão pode ser configurada de forma mais liberal com 755 (drwxr-xr-x) em um ambiente dedicado.
-
Atualize seu arquivo de configuração '/etc/my.cnf' para apontá-lo para o novo diretório de dados.
Certifique-se de fazer backup de tudo antes de fazer qualquer edição no arquivo de configuração.
cp -vp /etc/my.cnf /etc/my.cnf.'date +%s'vi /etc/my.cnf -
Substitua qualquer instância de '/var/lib/mysql' por '/var/lib/mysql-data'. Se você não tiver uma entrada
datadir, coloque-a dentro da sub-rotina [mysqld].[mysqld]user = mysqldatadir = /var/lib/mysql-datasocket = /var/lib/mysql-datal/mysql.sock -
Alguns aplicativos têm configuração customizada e este documento não os abrange. Alguns scripts são conhecidos por falhar se o diretório de dados não é /var/lib/mysql. Assim, um link simbólico é usado para apontar para o novo local.
mv -v /var/lib/mysql /var/lib/mysql.origln -s /var/lib/mysql-data /var/lib/mysql
Se você não quiser criar o link, certifique-se de mudar o 'mysql.default'_socket e 'mysqli.default'_socket em 'php.ini' e parar completamente e iniciar o Apache.
- Inicie o daemon do MySQL.
/etc/init.d/mysql start
- Verifique se o MySQL está funcionando. Se o MySQL não responder, revise seus logs de erro. Reverta as mudanças se necessário.
mysqladmin ping