Mapeei meu datadir MySQL para um disco diferente (e maior) com 900 GB
[root@web ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/xvda1 40G 24G 14G 64% /
tmpfs 7.4G 0 7.4G 0% /dev/shm
/dev/xvdb1 886G 658G 184G 79% /mnt/cbsvolume1
O / tmp está localizado no disco menor de 40 GB
[root@web ~]# df -h /tmp
Filesystem Size Used Avail Use% Mounted on
/dev/xvda1 40G 24G 14G 64% /
Parece que o MySQL está usando o diretório / tmp e, por isso, às vezes estou ficando sem espaço em disco ao tentar executar grandes operações do MySQL.
Como posso alterar o /tmp
para também usar o disco maior?
linux
hard-drive
centos
mysql
Noam
fonte
fonte
/tmp
nem está localizado em um disco./tmp
sertmpfs
, o que não é o caso.Respostas:
Tanto quanto eu sei, o conteúdo de
/tmp
são excluídos na reinicialização.No entanto, no seu caso, você pode tentar alterar / adicionar
TMPDIR
variável de ambiente em:fonte
df -h /tmp
ainda mostra a mesma coisa. Como posso verificar se 'funcionou'?/tmp
da montagem menor. Além disso, eu não tenho um diretório,/etc/mysql/
pode estar em um lugar diferente?my.cnf
arquivo)/usr/libexec/mysqld: Can't create/write to file '/mnt/cbsvolume1/newTmpDir/ibvxXVDh' (Errcode: 13)
Então, acho que preciso adicionar premissas a esse diretório? Então eu também fizchown mysql:mysql /mnt/cbsvolume1/newTmpDir
e parece estar funcionando. Obrigado!Altere a variável de ambiente TMPDIR para um sistema de arquivos / diretório com mais espaço em disco.
Edite o arquivo de configuração local
/etc/mysql/conf.d/local.cnf
. Este arquivo contém suas alterações locais - e não será sobrescrito se você atualizar o mysql. Observe que os arquivos de configuração podem ser armazenados em um local diferente - use find para localizar o arquivo de configuração padrão my.cnf. Geralmente local.cnf seria mantido no mesmo diretório.Edite local.cnf, por exemplo
sudo vi /etc/mysql/conf.d/local.cnf
Adicione estas linhas ao local.cnf:
Então reinicie o mysql.
Na documentação do MySQL :
fonte
export TMPDIR=<path>
sugestão. Além disso, eu não tenho um/etc/mysql/
diretório, ele pode estar localizado em um local diferente?export
comando. Usefind
como explicado na resposta editada.