Падает mysql

Тема в разделе "Администрирование серверов", создана пользователем SocMaster, 11 дек 2015.

Модераторы: mefish, stooper
  1. SocMaster

    SocMaster aka Hakerok

    Регистр.:
    26 июл 2011
    Сообщения:
    213
    Симпатии:
    47
    После редактирование конфига заметил что 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. HS!

    HS!

    Заблокирован
    Регистр.:
    3 мар 2013
    Сообщения:
    355
    Симпатии:
    320
    tmp_table_size=1024M
    max-connections=5000
    key-buffer-size = 1048M

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


    max_allowed_packet=128M
     
    SocMaster нравится это.
  3. SocMaster

    SocMaster aka Hakerok

    Регистр.:
    26 июл 2011
    Сообщения:
    213
    Симпатии:
    47
    Помогло на время, сегодня ночью лежала mysql =(
    Есть ещё мысли?
     
  4. efs

    efs SEO оптимизатор дискрипторов одностраничных сайтов

    Moderator
    Регистр.:
    20 ноя 2009
    Сообщения:
    832
    Симпатии:
    489
    если не можете выявить причину, попробуйте с другой стороны зайти. поставьте monit. пусть следит за мускулем и запускает если тот упадет. костыль, но позволит хоть как-то работать.
     
  5. Marshan Busiko

    Marshan Busiko Постоялец

    Регистр.:
    29 сен 2007
    Сообщения:
    102
    Симпатии:
    77
    Как вариант, можно еще попробовать самому собрать версию из исходников вместо устанавливаемой из репозитория.

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

    И посмотрите - какие именно запросы так сильно грузят базу данных. Если это не DDOS, то может стоит оптимизировать работу с базой. Иногда правка одного запроса может существенно ускорить работу всей системы.
     
  6. mSnus

    mSnus Создатель

    Регистр.:
    4 дек 2015
    Сообщения:
    32
    Симпатии:
    5
    надо выяснить, что именно грузит mySQL - а вообще он не должен уходить в normal shutdown, под нагрузкой он может зависнуть, затупить - но выключаться совсем сам?? это аномалия.
     
  7. dedo

    dedo Постоялец

    Регистр.:
    2 дек 2006
    Сообщения:
    106
    Симпатии:
    62
    конфиг не читается вообще:
    >>> 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гб конфиг слишком все превышает базовые значения. это не есть хорошо. читайте мануал по каждому параметру.
     
    Последнее редактирование: 21 дек 2015
  8. SocMaster

    SocMaster aka Hakerok

    Регистр.:
    26 июл 2011
    Сообщения:
    213
    Симпатии:
    47
    Нашел такой скрипт для перезапуска при падении 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
     
  9. dedo

    dedo Постоялец

    Регистр.:
    2 дек 2006
    Сообщения:
    106
    Симпатии:
    62
    не в ту сторону смотришь, мускул вообще не должен просто перезапускаться, и темболее падать.
    мускул перезапускается только в двух случаях
    1 - обновление параметров
    2 - перезагрузка сервера для обновления ядра.

    лечи проблему а нe скрывай еe.
    будешь всякую ерунду делать можеш таблицы поломать или вообще базу убить.
     
  10. SocMaster

    SocMaster aka Hakerok

    Регистр.:
    26 июл 2011
    Сообщения:
    213
    Симпатии:
    47
    Для этого надо найти толкового человечка. К сожалению я только могу скрыть её
    Если кто может помочь за вознаграждение пишите. есть ещё вопрос по серверу