Como alterar um diretório de dados MySQL/Mariadb padrão no Linux

Como alterar um diretório de dados MySQL/Mariadb padrão no Linux

Depois de instalar os componentes de uma pilha de lâmpadas em um servidor CentOS/RHEL 7, há algumas coisas que você pode querer fazer.

Alguns deles têm a ver com o aumento da segurança do Apache e do MySQL / Mariadb, enquanto outros podem ser aplicáveis ​​ou não de acordo com nossa configuração ou necessidades.

Por exemplo, com base no uso esperado do servidor de banco de dados, podemos querer alterar o padrão dados diretório (/var/lib/mysql) para um local diferente. É o caso quando esse diretório deve crescer devido ao alto uso.

Caso contrário, o sistema de arquivos onde /var é armazenado pode entrar em colapso em um ponto, fazendo com que todo o sistema falhe. Outro cenário em que a alteração do diretório padrão é quando temos um compartilhamento de rede dedicado que queremos usar para armazenar nossos dados reais.

Por esse motivo, neste artigo, explicaremos como alterar o diretório de dados MySQL/MariaDB padrão para um caminho diferente em um servidor CentOS/RHEL 7 e distribuições Ubuntu/Debian.

Embora vamos usar Mariadb, os conceitos explicaram e as medidas tomadas neste artigo se aplicam a Mysql e para Mariadb a menos que seja observado de outra forma.

Alterando o diretório de dados MySQL/Mariadb padrão

Observação: Vamos assumir que nosso novo diretório de dados é /mnt/mysql-data. É importante observar que este diretório deve pertencer a mysql: mysql.

# mkdir /mnt /mysql-data # chown -r mysql: mysql /mnt /mysql-data 

Para sua conveniência, dividimos o processo em 5 etapas fáceis de seguir:

Etapa 1: Identifique o diretório de dados do MySQL atual

Para começar, vale a pena identificar o diretório de dados atual usando o seguinte comando. Não apenas assuma que ainda é /var/lib/mysql já que poderia ter sido alterado no passado.

# mysql -u root -p -e "selecione @@ datadir;" 

Depois de inserir a senha do MySQL, a saída deve ser semelhante a.

Identifique o diretório de dados MySQL

Etapa 2: Copie o diretório de dados MySQL para um novo local

Para evitar a corrupção de dados, pare o serviço se estiver em execução antes de prosseguir. Use o Systemd comandos bem conhecidos para fazer isso:

------------- No Systemd ------------- # SystemCtl Stop mariadb # SystemCtl ISActive MariaDB ------------- Em sysvinit ------------- # serviço mysqld stop # serviço mysqld status ou # serviço mysql stop # serviço mysql status 

Se o serviço for reduzido, a saída do último comando deve ser a seguinte:

Pare o serviço MySQL

Em seguida, copie recursivamente o conteúdo de /var/lib/mysql para /mnt/mysql-data Preservando as permissões e registros de data e hora originais:

# cp -r -p/var/lib/mysql/*/mnt/mysql -data 
Copie o diretório de dados do MySQL para o novo local

Etapa 3: Configure um novo diretório de dados MySQL

Edite o arquivo de configuração (meu.CNF) para indicar o novo diretório de dados (/mnt/mysql-data nesse caso).

# vi /etc /meu.cnf ou # vi/etc/mysql/my.CNF 

Localize o [MySqld] e [cliente] seções e faça as seguintes alterações:

Sob [mysqld]: datadir =/mnt/mysql-data soquete =/mnt/mysql-data/mysql.meia Em [cliente]: porta = 3306 soquete =/mnt/mysql-data/mysql.meia 

Salve as alterações e depois prossiga com a próxima etapa.

Configurar novo diretório de dados MySQL

Etapa 4: Defina o contexto de segurança do Selinux como diretório de dados

Esta etapa é aplicável apenas a RHEL/CENTOS e seus derivados.

Adicione o contexto de segurança do Selinux a /mnt/mysql-data Antes de reiniciar o mariadb.

# semanage fContext -a -t mysqld_db_t "/mnt/mysql -data (///////////////////.*)?" # RESTORECON -R /MNT /MYSQL -DATA 

Em seguida, reinicie o serviço MySQL.

------------- No Systemd ------------- # SystemCtl Stop mariadb # SystemCtl ISActive MariaDB ------------- Em sysvinit ------------- # serviço mysqld stop # serviço mysqld status ou # serviço mysql stop # serviço mysql status 

Agora, use o mesmo comando que em Passo 1 Para verificar a localização do novo diretório de dados:

# mysql -u root -p -e "selecione @@ datadir;" 
Verifique o MySQL New Data Directory

Etapa 5: Crie um banco de dados MySQL para confirmar o diretório de dados

Faça login no mariadb, crie um novo banco de dados e depois verifique /mnt/mysql-data:

# mysql -u root -p -e "Crie banco de dados Tecmint;" 
Verifique o MySQL New Data Directory

Parabéns! Você mudou com sucesso o diretório de dados para MySQL ou Mariadb.

Resumo

Nesta postagem, discutimos como alterar o diretório de dados em um servidor MySQL ou Mariadb em execução no CentOS/Rhel 7 e Distribuições Ubuntu/Debian.

Você tem alguma dúvida ou comentário sobre este artigo? Sinta -se à vontade para nos informar usando o formulário abaixo - estamos sempre felizes em ouvir de você!