No começo deste mês, herdei um servidor MySQL 5.6 hospedado em uma pequena VM do Azure com um único disco rígido de 30 GB. O banco de dados estava consumindo 22 GB; o uso do disco foi de 89%.
Migre / var / lib / mysql para o disco montado com o symlink
lsblk && df
sudo mkdir /media/sdc
fdisk /dev/sdc
n p 1 2048 209715199 w
sudo mkfs.ext3 /dev/sdc1
sudo mount /dev/sdc1 /media/sdc
sudo systemctl stop mysqld
sudo cp -dpR /var/lib/mysql /media/sdc/mysql
sudo mv /var/lib/mysql /var/lib/mysql.old
sudo ln -s /media/sdc/mysql /var/lib/mysql
sudo systemctl start mysqld
montei uma unidade externa, migrei os arquivos do banco de dados para a unidade externa; depois, e mudou o diretório mysql original em um link simbólico apontando para o novo local. Inicialmente eu pensei que poderia ser um problema de referência com o mysql não atravessando o symlink. Então mudei minha tática para montar o drive externo diretamente em / var / lib / mysql.
Monte o disco em / var / lib / mysql e migre os dados.
#Remove the migrated files (I still have mysql.old)
sudo rm /var/lib/mysql
sudo rm -R /media/sdc/mysql
#Mount the drive to /var/lib/mysql directly.
sudo mount /dev/sdc1 /var/lib/mysql
sudo cp -dpR /var/lib/mysql.old /var/lib/mysql
sudo systemctl restart mysql
Isso também não funcionou. Em ambos os casos, o mysql se recusa a iniciar pelas mesmas razões:
sudo systemctl restart mysql
Job for mysqld.service failed because a timeout was exceeded. See "systemctl status mysqld.service" and "journalctl -xe" for details
systemctl status mysqld.service
systemctl status mysqld.service
● mysqld.service - MySQL Community Server
Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
Active: activating (start-post) since Tue 2017-07-18 20:58:12 UTC; 4min 37s ago
Process: 32798 ExecStart=/usr/bin/mysqld_safe (code=exited, status=0/SUCCESS)
Process: 32787 ExecStartPre=/usr/bin/mysql-systemd-start pre (code=exited, status=0/SUCCESS)
Main PID: 32798 (code=exited, status=0/SUCCESS); : 32799 (mysql-systemd-s)
CGroup: /system.slice/mysqld.service
└─control
├─32799 /bin/bash /usr/bin/mysql-systemd-start post
└─33965 sleep 1
journalctl -xe
~
…
~
...skipping...
~
…
~
Além disso, eu também tentei vários métodos para iniciar o servidor sem sucesso (mesmos resultados):
sudo systemctl start mysqld
sudo systemctl start mysql.service
sudo systemctl start mysql
service mysql restart
ps aux | grep mysql
admin_u+ 58206 0.0 0.0 112648 976 pts/0 R+ 14:19 0:00 grep --color=auto mysql
Como resolvo esse problema e inicio o mysql?
Esqueci de algo? Eu pensei que também pode ser a configuração do datadir como em esta questão ; mas, os dois métodos que eu tomei não modificam o caminho do datadir ...