Падает mysql

SocMaster

Профессор
Регистрация
26 Июл 2011
Сообщения
211
Реакции
49
После редактирование конфига заметил что mysql очень часто падает, сутки работает, все ок, тут бац упала, поднял, через час снова лежит
141221 11:48:08 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
141221 11:48:08 InnoDB: Initializing buffer pool, size = 8.0M
141221 11:48:08 InnoDB: Completed initialization of buffer pool
InnoDB: The first specified data file ./ibdata1 did not exist:
InnoDB: a new database to be created!
141221 11:48:08 InnoDB: Setting file ./ibdata1 size to 10 MB
InnoDB: Database physically writes the file full: wait...
141221 11:48:08 InnoDB: Log file ./ib_logfile0 did not exist: new to be created
InnoDB: Setting log file ./ib_logfile0 size to 5 MB
InnoDB: Database physically writes the file full: wait...
141221 11:48:08 InnoDB: Log file ./ib_logfile1 did not exist: new to be created
InnoDB: Setting log file ./ib_logfile1 size to 5 MB
InnoDB: Database physically writes the file full: wait...
InnoDB: Doublewrite buffer not found: creating new
InnoDB: Doublewrite buffer created
InnoDB: Creating foreign key constraint system tables
InnoDB: Foreign key constraint system tables created
141221 11:48:09 InnoDB: Started; log sequence number 0 0
141221 11:48:09 [Note] Event Scheduler: Loaded 0 events
141221 11:48:09 [Note] /usr/libexec/mysqld: ready for connections.
Version: '5.1.73' socket: '/var/lib/mysql/mysql.sock' port: 3306 Source distribution
141221 23:46:15 [Note] /usr/libexec/mysqld: Normal shutdown

141221 23:46:15 [Note] Event Scheduler: Purging the queue. 0 events
141221 23:46:15 InnoDB: Starting shutdown...
141221 23:46:18 InnoDB: Shutdown completed; log sequence number 0 45849668
141221 23:46:18 [Note] /usr/libexec/mysqld: Shutdown complete

141221 23:46:18 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended
141221 23:46:18 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
141221 23:46:18 [Warning] option 'max_allowed_packet': unsigned value 6442450944 adjusted to 1073741824
141221 23:46:18 InnoDB: Initializing buffer pool, size = 8.0M
141221 23:46:18 InnoDB: Completed initialization of buffer pool
141221 23:46:18 InnoDB: Started; log sequence number 0 45849668
141221 23:46:18 [Note] Event Scheduler: Loaded 0 events
141221 23:46:18 [Note] /usr/libexec/mysqld: ready for connections.
Version: '5.1.73' socket: '/var/lib/mysql/mysql.sock' port: 3306 Source distribution
141221 23:47:59 [Note] /usr/libexec/mysqld: Normal shutdown

141221 23:47:59 [Note] Event Scheduler: Purging the queue. 0 events
141221 23:47:59 InnoDB: Starting shutdown...
141221 23:48:04 InnoDB: Shutdown completed; log sequence number 0 45849668
141221 23:48:04 [Note] /usr/libexec/mysqld: Shutdown complete

141221 23:48:04 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended
141221 23:48:06 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
141221 23:48:06 [Warning] option 'max_allowed_packet': unsigned value 6442450944 adjusted to 1073741824
141221 23:48:06 [Warning] Ignoring user change to 'root' because the user was set to 'mysql' earlier on the command line

141221 23:48:06 InnoDB: Initializing buffer pool, size = 8.0M
141221 23:48:06 InnoDB: Completed initialization of buffer pool
141221 23:48:06 InnoDB: Started; log sequence number 0 45849668
141221 23:48:06 [Note] /usr/libexec/mysqld: ready for connections.
Version: '5.1.73' socket: '/var/lib/mysql/mysql.sock' port: 3306 Source distribution
141221 23:53:44 [Note] /usr/libexec/mysqld: Normal shutdown

141221 23:53:44 InnoDB: Starting shutdown...
141221 23:53:47 InnoDB: Shutdown completed; log sequence number 0 45849668
141221 23:53:47 [Note] /usr/libexec/mysqld: Shutdown complete

141221 23:53:47 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended
141221 23:53:59 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
141221 23:53:59 [Warning] option 'max_allowed_packet': unsigned value 6442450944 adjusted to 1073741824
141221 23:53:59 InnoDB: Initializing buffer pool, size = 8.0M
141221 23:53:59 InnoDB: Completed initialization of buffer pool
141221 23:53:59 InnoDB: Started; log sequence number 0 45849668
141221 23:53:59 [Note] Event Scheduler: Loaded 0 events
141221 23:53:59 [Note] /usr/libexec/mysqld: ready for connections.
Version: '5.1.73' socket: '/var/lib/mysql/mysql.sock' port: 3306 Source distribution
141222 0:18:59 [Note] /usr/libexec/mysqld: Normal shutdown

141222 0:18:59 [Note] Event Scheduler: Purging the queue. 0 events
141222 0:18:59 InnoDB: Starting shutdown...
141222 0:19:00 InnoDB: Shutdown completed; log sequence number 0 92623662
141222 0:19:00 [Note] /usr/libexec/mysqld: Shutdown complete

141222 00:19:00 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended
141222 00:19:01 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
141222 0:19:01 [Warning] option 'max_allowed_packet': unsigned value 6442450944 adjusted to 1073741824
141222 0:19:01 InnoDB: Initializing buffer pool, size = 8.0M
141222 0:19:01 InnoDB: Completed initialization of buffer pool
141222 0:19:01 InnoDB: Started; log sequence number 0 92623662
141222 0:19:01 [Note] Event Scheduler: Loaded 0 events
141222 0:19:01 [Note] /usr/libexec/mysqld: ready for connections.
Version: '5.1.73' socket: '/var/lib/mysql/mysql.sock' port: 3306 Source distribution
141222 00:19:34 mysqld_safe A mysqld process already exists
141222 0:20:04 [Note] /usr/libexec/mysqld: Normal shutdown

141222 0:20:04 [Note] Event Scheduler: Purging the queue. 0 events
141222 0:20:04 InnoDB: Starting shutdown...
141222 0:20:07 InnoDB: Shutdown completed; log sequence number 0 92623662
141222 0:20:07 [Note] /usr/libexec/mysqld: Shutdown complete

141222 00:20:07 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended
141222 00:20:18 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
141222 0:20:18 [Warning] Ignoring user change to 'root' because the user was set to 'mysql' earlier on the command line

141222 0:20:18 InnoDB: Initializing buffer pool, size = 8.0M
141222 0:20:18 InnoDB: Completed initialization of buffer pool
141222 0:20:18 InnoDB: Started; log sequence number 0 92623662
141222 0:20:18 [Note] /usr/libexec/mysqld: ready for connections.
Version: '5.1.73' socket: '/var/lib/mysql/mysql.sock' port: 3306 Source distribution
141222 0:20:50 [Note] /usr/libexec/mysqld: Normal shutdown

141222 0:20:50 InnoDB: Starting shutdown...
141222 0:20:53 InnoDB: Shutdown completed; log sequence number 0 92623662
141222 0:20:53 [Note] /usr/libexec/mysqld: Shutdown complete

141222 00:20:53 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended
141222 00:21:04 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
141222 0:21:04 InnoDB: Initializing buffer pool, size = 8.0M
141222 0:21:04 InnoDB: Completed initialization of buffer pool
141222 0:21:04 InnoDB: Started; log sequence number 0 92623662
141222 0:21:04 [Note] Event Scheduler: Loaded 0 events
141222 0:21:04 [Note] /usr/libexec/mysqld: ready for connections.
Version: '5.1.73' socket: '/var/lib/mysql/mysql.sock' port: 3306 Source distribution
141222 13:58:45 [Note] /usr/libexec/mysqld: Normal shutdown

141222 13:58:45 [Note] Event Scheduler: Purging the queue. 0 events
141222 13:58:45 InnoDB: Starting shutdown...
141222 13:58:46 InnoDB: Shutdown completed; log sequence number 0 92626566
141222 13:58:46 [Note] /usr/libexec/mysqld: Shutdown complete

141222 13:58:46 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended

[mysqld]
pid-file = /var/run/mysqld/mysqld.pid
datadir=/var/lib/mysql
tmpdir=/dev/shm
socket=/var/lib/mysql/mysql.sock
key-buffer-size = 1048M
max-allowed-packet = 206M
#table-cache = 1024
sort-buffer-size = 512K
read-buffer-size = 512K
read-rnd-buffer-size = 512K
join-buffer-size= 1M
net-buffer-length = 512K
thread-stack = 256K
query-cache-type=1
#query-cache-size=128M
query-cache-size=512M
query-cache-limit=4M
open-files-limit=4k
#max-heap-table-size=4M
#tmp-table-size=4M
thread-cache-size=300
concurrent-insert=2
low-priority-updates=1
#max-connections=500
max-connections=5000
#wait-timeout=120
wait-timeout=30
#interactive-timeout=120
interactive-timeout=30
user=mysql
default_storage_engine=InnoDB
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
#sort_buffer_size=4M
sort_buffer_size=16M
#join_buffer_size=1M
join_buffer_size=8M
#read_buffer_size=1M
read_buffer_size=4M
#read_rnd_buffer_size=1M
read_rnd_buffer_size=8M
query_cache_wlock_invalidate
max_tmp_tables=64
#tmp_table_size=128M
tmp_table_size=1024M
#max_heap_table_size=128M
max_heap_table_size=1024M
bulk_insert_buffer_size=16M
preload_buffer_size=2M
memlock
myisam_use_mmap
innodb_additional_mem_pool_size=128M
innodb_buffer_pool_size=512M
innodb_log_buffer_size=16M
innodb_flush_log_at_trx_commit=2
innodb_flush_method=O_DIRECT
innodb_file_per_table
innodb_doublewrite=0
#myisam_sort_buffer_size=64M
myisam_sort_buffer_size=256M
table_open_cache=64M
max_join_size=1000000
key_buffer_size=4096M
thread_stack=512K
thread_cache_size=32
max_user_connections=10
table_cache=128
thread_concurrency=16
net_buffer_length=1024
max_allowed_packet=512M
max_sort_length=512
query_cache_limit=5M
query_cache_size=26M
query_cache_type=2

slow_query_log = 1
slow_query_log_file = /var/log/mysql/slow.log
long_query_time = 1

[mysqld-safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
Сейчас глянул, нагрузка на проц от mysql 68% 0_0
5k mb выделено под mysql

Процессор Intel(R) Xeon(R) CPU E3-1270 v3 @ 3.50GHz 3501.000 Mhz X 8
Оперативная память 7904568 / 16291172 kB
Размер дискового пространства 441644 Mb

Apache 2.2.15-39.el6.centos
MySQL 5.1.73-3.el6_5
PHP 5.3.3-46.el6_6
Perl 5.10.1-136.el6_6.1
Kernel 2.6.32-504.16.2.el6.x86_64
 
  • Заблокирован
  • #2
tmp_table_size=1024M
max-connections=5000
key-buffer-size = 1048M

вот эти параметры уменьшите как минимум в два раза а max-connections установите = 500
а вообще используйте утилиту mysqltuner.pl


max_allowed_packet=128M
 
Помогло на время, сегодня ночью лежала mysql =(
Есть ещё мысли?
 
Помогло на время, сегодня ночью лежала mysql =(
Есть ещё мысли?
если не можете выявить причину, попробуйте с другой стороны зайти. поставьте monit. пусть следит за мускулем и запускает если тот упадет. костыль, но позволит хоть как-то работать.
 
Как вариант, можно еще попробовать самому собрать версию из исходников вместо устанавливаемой из репозитория.

В это случае можно: 1) поиграться с настройками MySQL еще на этапе компиляции. Например, включить вывод отладочной информации в логи (опция -DWITH_DEBUG=1) тогда в логах будет больше информации о причинах падения. После устранения причин падения можно вернуться на обычную версия (или использовать собственную скомпилённую уже без отладочной информации).

И посмотрите - какие именно запросы так сильно грузят базу данных. Если это не DDOS, то может стоит оптимизировать работу с базой. Иногда правка одного запроса может существенно ускорить работу всей системы.
 
надо выяснить, что именно грузит mySQL - а вообще он не должен уходить в normal shutdown, под нагрузкой он может зависнуть, затупить - но выключаться совсем сам?? это аномалия.
 
конфиг не читается вообще:
>>> 141222 0:21:04 InnoDB: Initializing buffer pool, size = 8.0M
>>> innodb_buffer_pool_size=512M

смотри какой конфиг загружен / какой редактируешь:
strace mysql 2>&1 | grep cnf | grep -v file

у вас или криво установлeно или еще какие проблемы, запустите mysqltuner.pl
нужно смотреть что он покажет.

убей мускл вообще pkill mysql и перезапусти. смотри лог.
нужно еще mytop поставить

вообще для 8гб конфиг слишком все превышает базовые значения. это не есть хорошо. читайте мануал по каждому параметру.
 
Последнее редактирование:
Нашел такой скрипт для перезапуска при падении mysql
Через консоль работает, как на крон его поставить?
Пробовал в панели (исп) крон вписать
/root/mysqlfix.sh
но тогда ругается на скрипт
root# /root/mysqlfix.sh
which: no mail in ((null))
which: no mysqladmin in ((null))
/root/mysqlfix.sh: line 31: service: command not found
/root/mysqlfix.sh: line 45: -s: command not found
#!/bin/bash
# mysql root/admin username
MUSER="root"
# mysql admin/root password
MPASS="####"
# mysql server hostname
MHOST="localhost"
#Shell script to start MySQL server i.e. path to MySQL daemon start/stop script.
# Debain uses following script, need to setup this according to your UNIX/Linux/BSD OS.
MSTART="service mysqld restart"
# Email ID to send notification
EMAILID="####"
# path to mail program
MAILCMD="$(which mail)"
# path mysqladmin
MADMIN="$(which mysqladmin)"

#### DO NOT CHANGE anything BELOW ####
MAILMESSAGE="/tmp/mysql.fail.$$"

# see if MySQL server is alive or not
# 2&1 could be better but i would like to keep it simple and easy to
# understand stuff :)
$MADMIN -h $MHOST -u $MUSER -p${MPASS} ping 2>/dev/null 1>/dev/null
if [ $? -ne 0 ]; then
echo "" >$MAILMESSAGE
echo "Error: MySQL Server is not running/responding ping request">>$MAILMESSAGE
echo "Hostname: $(hostname)" >>$MAILMESSAGE
echo "Date & Time: $(date)" >>$MAILMESSAGE
# try to start mysql
$MSTART>/dev/null
# see if it is started or not
o=$(ps cax | grep -c ' mysqld$')
if [ $o -eq 1 ]; then
sMess="MySQL Server MySQL server successfully restarted"
else
sMess="MySQL server FAILED to restart"
fi
# Email status too
echo "Current Status: $sMess" >>$MAILMESSAGE
echo "" >>$MAILMESSAGE
echo "*** This email generated by $(basename $0) shell script ***" >>$MAILMESSAGE
echo "*** Please don't reply this email, this is just notification email ***" >>$MAILMESSAGE
# send email
$MAILCMD -s "MySQL server" $EMAILID < $MAILMESSAGE
else # MySQL is running :) and do nothing
:
fi
# remove file
rm -f $MAILMESSAGE
 
не в ту сторону смотришь, мускул вообще не должен просто перезапускаться, и темболее падать.
мускул перезапускается только в двух случаях
1 - обновление параметров
2 - перезагрузка сервера для обновления ядра.

лечи проблему а нe скрывай еe.
будешь всякую ерунду делать можеш таблицы поломать или вообще базу убить.
 
не в ту сторону смотришь, мускул вообще не должен просто перезапускаться, и темболее падать.
мускул перезапускается только в двух случаях
1 - обновление параметров
2 - перезагрузка сервера для обновления ядра.

лечи проблему а нe скрывай еe.
будешь всякую ерунду делать можеш таблицы поломать или вообще базу убить.
Для этого надо найти толкового человечка. К сожалению я только могу скрыть её
Если кто может помочь за вознаграждение пишите. есть ещё вопрос по серверу
 
Назад
Сверху