Я только что столкнулся со странной проблемой на моем сервере: это базовый сервер LAMP, который я только что настроил, и когда я пытаюсь перезапустить MySQL, я получаю следующую ошибку.
/etc/init.d/mysql: ERROR: The partition with /var/lib/mysql is too full!
Что очень странно, так это то, что я не установил специальный раздел для / var / и посмотрел на это с помощью df и mount, но все мои разделы почти пустые!
>> df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 254G 8.8G 232G 4% /
none 4.0K 0 4.0K 0% /sys/fs/cgroup
udev 3.9G 4.0K 3.9G 1% /dev
tmpfs 798M 452K 797M 1% /run
none 5.0M 0 5.0M 0% /run/lock
none 3.9G 0 3.9G 0% /run/shm
none 100M 0 100M 0% /run/user
/dev/sda1 180M 35M 133M 21% /boot
/dev/sda3 656G 70M 623G 1% /home
Итак, я погуглил и просмотрел там старые вопросы, но я не смог найти ничего, кроме «отчета об ошибке» в MySQL, который не был подтвержден (и обходной путь которого не сработал для меня).
Так что я в растерянности.
И теперь мой сервер начал делать странные вещи: когда я выполнял ЗАГРУЗИТЬ ДАННЫЕ INFILE с довольно большим файлом (~ 1Go), он загружался в течение хорошего часа, а затем просто очищал таблицу, в которую я загружал его ... это было бы, если бы он отклонил данные из-за нехватки места.
N.B: Я также сделал df -i, и все они равны 1% ... N.B: При попытке сделать это с помощью "sudo", как root, я получаю следующее
sudo /etc/init.d/mysql restart
* Stopping MySQL database server mysqld [ OK ]
* Starting MySQL database server mysqld [fail]
Что еще хуже, потому что я не знаю почему ... Но я думаю, это снова проблема "слишком полной".
[EDIT:] Мои файловые системы:
>> df -hT
Filesystem Type Size Used Avail Use% Mounted on
/dev/sda2 ext4 254G 8.9G 232G 4% /
none tmpfs 4.0K 0 4.0K 0% /sys/fs/cgroup
udev devtmpfs 3.9G 4.0K 3.9G 1% /dev
tmpfs tmpfs 798M 460K 797M 1% /run
none tmpfs 5.0M 0 5.0M 0% /run/lock
none tmpfs 3.9G 0 3.9G 0% /run/shm
none tmpfs 100M 0 100M 0% /run/user
/dev/sda1 ext4 180M 35M 133M 21% /boot
/dev/sda3 ext4 656G 70M 623G 1% /home
И вот результаты "ps aux | grep mysql":
mysql 851 0.2 2.1 619960 177832 ? Sl Apr14 2:53 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib/mysql/plugin --user=mysql --log-error=/var/log/mysql/error.log --pid-file=/var/run/mysqld/mysqld.pid --socket=/var/run/mysqld/mysqld.sock --port=3306
mysql 20977 0.1 0.4 380728 34228 ? Ssl 11:28 0:00 /usr/sbin/mysqld
ruuser 21111 0.0 0.0 11696 936 pts/1 S+ 11:29 0:00 grep --color=auto mysql
root 32425 0.0 0.0 4440 748 ? S Apr14 0:00 /bin/sh /usr/bin/mysqld_safe
Вы проверяли, не запущен ли MySQL? Почему-то иногда говорится, что раздел переполнен только потому, что mysql deamon уже запущен.
Вы можете проверить это с помощью "ps aux | grep mysql". Если вы видите запущенные процессы mysql, попробуйте остановить их с помощью «service mysql stop». Если процессы mysql все еще существуют, уничтожьте их, используя команду «kill $ PID», заменив $ PID на их соответствующий PID.
Попробуйте снова запустить mysql с "запуском службы mysql".
Причина сообщения в том, что (я подозреваю) экземпляр mysql открывает временный файл и удаляет его, сохраняя дескриптор к нему. Таким образом, файл будет автоматически удален, когда процесс завершится, поскольку счетчик ссылок достигнет 0.
Вы можете проверить это с помощью lsof (от имени пользователя root или пользователя службы mysql). Вы увидите упоминания о (deleted)
в выводе, если это так. Временный файл, который он создает, будет полезным способом для mysql предварительно зарезервировать некоторое пространство (вероятно, он сделает разреженный файл достаточно большого размера), что объяснит причину. Другой возможной причиной сообщений типа «недостаточно места» может быть отсутствие inodes (df -hi
покажет это), но обычно это встречается только при работе с большим количеством небольших файлов, таких как прокси-кеш.
Как указывали другие, это может быть симптомом выполнения другого процесса MySQL. В этом случае остановите службу с помощью сценария; убедитесь, что служба не запущена; убейте всех оставшихся, если они есть; и начинаем пользоваться скриптом; убедитесь, что его вверх.