Пожалуйста, ответьте, большое спасибо. При вставке данных в базу данных было обнаружено, что диск переполнен, и появилась следующая информация:
Первоначально подключенный сеанс не может быть подключен к базе данных:
mysql> use music;
No connection. Trying to reconnect...
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/mysql/socketfile/mysql.sock' (2)
ERROR:
Can't connect to the server
Не удается подключиться в базу данных из ОС:
-bash-4.2$ mysql -uroot -p
Enter password:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/mysql/socketfile/mysql.sock' (13)
Невозможно завершить работу базы данных с помощью mysqladmin:
Enter password:
mysqladmin: connect to server at 'localhost' failed
error: 'Can't connect to local MySQL server through socket '/mysql/socketfile/mysql.sock' (2)'
Check that mysqld is running and that the socket: '/mysql/socketfile/mysql.sock' exists!
Невозможно закрыть базу данных с помощью служебной команды:
-bash-4.2$ service mysql start
==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units ===
Authentication is required to manage system services or units.
Authenticating as: root
Password:
==== AUTHENTICATION COMPLETE ===
Starting MySQL.. ERROR! The server quit without updating PID file (/mysqldata/freelab.pid).
Через некоторое время я обнаружил, что процесс mysql исчез, но я не смог запустить его с помощью команды mysql_safe:
-bash-4.2$ mysqld_safe --user=mysql
2020-02-16T11:02:42.912816Z mysqld_safe Logging to '/mydiaglog/mysql-error.log'.
2020-02-16T11:02:42.955018Z mysqld_safe Starting mysqld daemon with databases from /mysqldata
2020-02-16T11:02:44.479551Z mysqld_safe mysqld from pid file /mysql/mysql.pid ended
[1]- Done mysqld_safe --user=mysql
[2]+ Exit 127 --user=mysql
-bash-4.2$ id
uid=997(mysql) gid=1000(mysql) groups=1000(mysql)
-bash-4.2$ ps -ef|grep mysql
root 2307 1825 0 Feb15 pts/0 00:00:00 su - mysql
mysql 2308 2307 0 Feb15 pts/0 00:00:00 -bash
root 19582 1844 0 05:58 pts/1 00:00:00 su - mysql
mysql 19583 19582 0 05:58 pts/1 00:00:00 -bash
mysql 20707 2308 0 06:02 pts/0 00:00:00 ps -ef
mysql 20708 2308 0 06:02 pts/0 00:00:00 grep --color=auto mysql
Информация в журнале ошибок:
[root@freelab music]# tail -f /mydiaglog/mysql-error.log
/mysql/bin/mysqld(buf_page_io_complete(buf_page_t*, bool)+0xbe8) [0x2220bc8]
/mysql/bin/mysqld(fil_aio_wait(unsigned long)+0xff) [0x22dff0f]
/mysql/bin/mysqld() [0x2160850]
/mysql/bin/mysqld(std::thread::_State_impl<std::thread::_Invoker<std::tuple<Runnable, void (*)(unsigned long), unsigned long> > >::_M_run()+0xa9) [0
/mysql/bin/mysqld() [0x265d64f]
/lib64/libpthread.so.0(+0x7e65) [0x7fc5ed7d1e65]
/lib64/libc.so.6(clone+0x6d) [0x7fc5eb90f88d]
The manual page at http://dev.mysql.com/doc/mysql/en/crashing.html contains
information that should help you find out what is causing the crash.
2020-02-16T11:00:13.978473Z mysqld_safe mysqld from pid file /mysql/mysql.pid ended
Файл сокета становится:
[root@freelab socketfile]# ls
mysql.sock.lock
В то время файл pid не был найден, и при удалении таблицы не было освобождено места. После перезапуска системы база данных вернулась в нормальное состояние.
В этом случае, если файловая система не может быть расширена и данные таблицы могут быть очищены для освобождения места, что мне делать дальше? Есть ли безопасный способ и предложения, кроме перезапуска?