IBM Cloud Docs
Como alterar o diretório de dados MySQL em um ambiente UNIX ou similar

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:

  1. 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.

  2. 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 stop

    OU

    /etc/init.d/mysqld, /etc/init.d/mysql-server, /usr/loca/etc/init.d/mysql, /opt/lamp…

  3. 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'

  1. 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/fstab e montar o diretório antes de continuar.

    chown mysql:mysql /var/lib/mysql-data

  2. 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

  3. 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.

  1. 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

  2. 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 = mysql datadir = /var/lib/mysql-data socket = /var/lib/mysql-datal/mysql.sock

  3. 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.orig

    ln -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.

  1. Inicie o daemon do MySQL.

/etc/init.d/mysql start

  1. 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