Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

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


Depois de instalar os componentes de uma pilha LAMP 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 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 os dados padrão diretório (/var/lib/mysql ) para um local diferente. Este é o caso quando se espera que tal diretório cresça 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 alterar o 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 padrão do MySQL/MariaDB para um caminho diferente em um servidor CentOS/RHEL 7 e em distribuições Ubuntu/Debian.

Embora usaremos MariaDB , os conceitos explicados e as etapas realizadas neste artigo se aplicam tanto ao MySQL e para MariaDB salvo indicação em contrário.

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 notar que este diretório deve ser de propriedade de 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:identificar o diretório de dados MySQL atual


Para começar, vale a pena identificar o diretório de dados atual usando o seguinte comando. Não assuma que ainda é /var/lib/mysql uma vez que poderia ter sido alterado no passado.
# mysql -u root -p -e "SELECT @@datadir;"

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

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


Para evitar corrupção de dados, interrompa o serviço se estiver em execução antes de continuar. Use o systemd comandos bem conhecidos para fazer isso:
------------- On SystemD ------------- 
# systemctl stop mariadb
# systemctl is-active mariadb

------------- On SysVInit ------------- 
# service mysqld stop
# service mysqld status

OR

# service mysql stop
# service mysql status

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

Em seguida, copie recursivamente o conteúdo de /var/lib/mysql para /mnt/mysql-data preservando permissões e carimbos de data/hora originais:
# cp -R -p /var/lib/mysql/* /mnt/mysql-data

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


Edite o arquivo de configuração (my.cnf ) para indicar o novo diretório de dados (/mnt/mysql-data nesse caso).
# vi /etc/my.cnf
OR
# vi /etc/mysql/my.cnf

Localize o [mysqld] e [client] seções e faça as seguintes alterações:
Under [mysqld]:
datadir=/mnt/mysql-data
socket=/mnt/mysql-data/mysql.sock

Under [client]:
port=3306
socket=/mnt/mysql-data/mysql.sock

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

Etapa 4:definir o contexto de segurança do SELinux para o diretório de dados


Esta etapa é aplicável apenas ao 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.
------------- On SystemD ------------- 
# systemctl stop mariadb
# systemctl is-active mariadb

------------- On SysVInit ------------- 
# service mysqld stop
# service mysqld status

OR

# service mysql stop
# service mysql status

Agora, use o mesmo comando da Etapa 1 para verificar a localização do novo diretório de dados:
# mysql -u root -p -e "SELECT @@datadir;"

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


Faça login no MariaDB, crie um novo banco de dados e verifique /mnt/mysql-data :
# mysql -u root -p -e "CREATE DATABASE tecmint;"

Parabéns! Você alterou com sucesso o diretório de dados para MySQL ou MariaDB.
Resumo

Neste post, discutimos como alterar o diretório de dados em um servidor MySQL ou MariaDB rodando em distribuições CentOS/RHEL 7 e 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ê!