Страница 1 из 1

бесконечно долгая остановка MySQL

Добавлено: 2010-06-04 8:33:15
ban
Проблема (а может и не проблема....) решил я остановить мускул и он собака останавливается очень-очень-очень долго. Меня тока ну чуть больше наверное пяти минут хватает смотреть на это:

Код: Выделить всё

#/usr/local/etc/rc.d/mysql-server stop
Stopping mysql.
Waiting for PIDS: 4786, 4786, 4786, 4786, 4786, 4786, 4786, 4786, 4786, 4786, 4786, 4786, 4786, 4786, 4786, 4786, 4786, 4786, 4786, 4786, 4786, 4786, 4786, 4786,....и нету конца.....
методом научного тыка, ближе к пяти утра сегодня, после подачи сигнала останова, сразу же его прервал:

Код: Выделить всё

#/usr/local/etc/rc.d/mysql-server stop
Stopping mysql.
Waiting for PIDS: 4786, 4786^C
а потом сразу же, не знаю почему набрал:

Код: Выделить всё

#mysql
ERROR 2013 (HY000): Lost connection to MySQL server at 'reading initial communication packet', system error: 53
и эта хренота (mysqld) МГНОВЕННО ВЫГРУЗИЛАСЬ.

пришел к выводу, что все-таки что-то непрерывно обращается к мусеЧке и эта п..дла не выгружается из-за этого. А после того, как я че-то на вход ей подаю, она мгновенно выгружается.
-------------------------------------------

Помогите советом, че у меня не так помимо кривых рук?
Как проанализировать проблему я пока не знаю, первый день тока знакомлюсь с MySQL.
Или скажите что я просто загоняюсЬ и так у всех людей MySQL нихрена нормально не выгружается.
=============================================================================================
=============================================================================================
=============================================================================================

FreeBSD 7.2-RELEASE

нет софта, который был бы настроен на работу с MySQL, вообще нет (мне так кажеца, спец-но я ничего не ставил для этого)

/etc/make.conf

Код: Выделить всё

DEFAULT_MYSQL_VER=50
PORTSDIR?= /usr/ports

# для сервера
.if ${.CURDIR} == ${PORTSDIR}/databases/mysql50-server
WITH_CHARSET=cp1251
WITH_XCHARSET=all
WITH_COLLATION=cp1251_bin
WITHOUT_OPENSSL=yes
WITHOUT_LINUXTHREADS=yes
WITHOUT_PROC_SCOPE_PTH=yes
BUILD_OPTIMIZED=yes
BUILD_STATIC=yes
WITHOUT_THR_ALARM=yes
WITHOUT_INNODB=yes
WITHOUT_ARCHIVE=yes
WITHOUT_CSV=yes
WITHOUT_FEDERATED=yes
WITHOUT_NDB=yes
.endif

# для клиента
.if ${.CURDIR} == ${PORTSDIR}/databases/mysql50-client
WITH_CHARSET=cp1251
WITH_COLLATION=cp1251_bin
BUILD_OPTIMIZED=yes
.endif
#cd /usr/ports/databases/mysql50-server && make install clean
sborka.png
#ee /etc/my.cnf

Код: Выделить всё

[client]
port            = 3306
socket          = /tmp/mysql.sock

[mysqld]
bind-address    = 127.0.0.1
port            = 3306
socket          = /tmp/mysql.sock
key_buffer = 16K
max_allowed_packet = 1M
table_cache = 4
sort_buffer_size = 64K
read_buffer_size = 256K
read_rnd_buffer_size = 256K
net_buffer_length = 2K
thread_stack = 128K
server-id       = 1
skip-locking
skip-federated
#skip-networking
skip-innodb
skip-bdb

[mysqldump]
quick
max_allowed_packet = 16M

[mysql]
no-auto-rehash

[isamchk]
key_buffer = 8M
sort_buffer_size = 8M

[myisamchk]
key_buffer = 8M
sort_buffer_size = 8M

[mysqlhotcopy]
interactive-timeout
ee /etc/rc.conf

Код: Выделить всё

mysql_enable="YES"

Re: бесконечно долгая остановка MySQL

Добавлено: 2010-06-04 11:18:58
_Попов
вобщем, пришел к выводу, что mysqld если нечО не менять / не править
не сможет застопаться

опробовал два способа остановки MySQL
1) /usr/local/etc/rc.d/mysql-server stop
2) mysqladmin shutdown

не должны работать, т.к. оказалось надо пинговать MySQL при стопании (так у них почему-то принято, но не доработано), а нигде это не прописано
--------------

На примере первого способа, т.к. во второй способ к сожалению я не знаю как залезть ибо mysqladmin - бинарник (по-моему):
при запуске /usr/local/etc/rc.d/mysql-server stop
уходит в /etc/rc.subr
в нем сначала MySQL килят -TERM
потом уходит в бесконечный цикл wait_for_pids() с прерыванием если пида нет, где на каждом шаге MySQL килят -0. У меня шелл csh, что самое интересное в мане csh написано:
BUGS
A replacement for the command ``kill 0'' for csh(1) users should be pro-
vided.
но это не суть важно, важно то, что цикл так и будет бесконечно килить -0 MySQL
если не подать на вход MySQL (как и было выявлено методом научного тыка утром, птицы суки) что-нибудь, например, при старте, они подают этот самый пинг:
/usr/local/bin/mysqladmin -s --socket=/tmp/mysql.sock ping
и если тоже самое проделать для стопания, то все стопается на раз.

кароче у них баг :)
не выспался из-за низ (кого них?)