banco de dados mysql sem espaço disponível

1

Eu estava restaurando um banco de dados de 200 GB em uma máquina RHEL recém-instalada. No entanto, durante a restauração, corri para no space available issue.

É possível alterar o diretório onde os bancos de dados estão armazenados?

    
por Ramesh 04.06.2014 / 18:28

3 respostas

4

Primeiro, consegui verificar se estava relacionado ao problema de espaço usando apenas a consulta mysql abaixo.

mysql -uUSER -p -e 'SHOW VARIABLES WHERE Variable_Name LIKE "%dir"'

O comando acima me retornou a saída como

+---------------------------+----------------------------+
| Variable_name             | Value                      |
+---------------------------+----------------------------+
| basedir                   | /usr                       |
| character_sets_dir        | /usr/share/mysql/charsets/ |
| datadir                   | /var/lib/mysql/            |
| innodb_data_home_dir      |                            |
| innodb_log_group_home_dir | ./                         |
| lc_messages_dir           | /usr/share/mysql/          |
| plugin_dir                | /usr/lib/mysql/plugin/     |
| slave_load_tmpdir         | /tmp                       |
| tmpdir                    | /tmp                       |
+---------------------------+----------------------------+

Como podemos ver no comando acima, o datadir está presente em /var/lib/mysql . Agora, eu precisava garantir que /var não tivesse espaço suficiente para acomodar o banco de dados, nesse caso, minha detecção está correta. Eu consegui usando o comando abaixo.

df -P /var | tail -1 | cut -d' ' -f 1

O comando acima diz basicamente o ponto de montagem de um diretório específico. Como eu suspeitava, o ponto de montagem estava sob /dev/sda2 , que tinha apenas 40 GB de espaço. Agora, alterar o datadir é simples.

Pare o serviço mysql usando

service mysqld stop

Edite o arquivo /etc/my.cnf para ter o datadir em alguma partição onde tenhamos espaço suficiente. (Isso é para o RHEL e pode variar dependendo da versão do sistema operacional). Depois de mudar o datadir , reinicie o serviço mysql usando o comando

service mysqld start

Referências

link

link

    
por 04.06.2014 / 18:28
2

Sim, você pode alterar o local onde os dados do banco de dados MySQL residem, alterando a variável datadir no /etc/my.cnf

* Faça backup dos seus dados antes de tentar as etapas abaixo.

1.) Pare o serviço mysqld (service mysqld stop).

2.) Edite /etc/my.cnf e altere a variável datadir para o local desejado (datadir = 'insert_dir_here'), e certifique-se de anotar o local anterior para o próximo passo.

3.) Mova os dados do local antigo do datadir para o novo local.

4.) Inicie o serviço mysqld (service mysqld start).

    
por 05.06.2014 / 03:11
0

Sim, você pode alterar o local em que um banco de dados MySQL é alterado usando uma configuração no arquivo my.cnf.

    
por 04.06.2014 / 20:23