• mysqld got signal 11


    问题发生背景

    问题实例之前使用的是percona server,是安装pmm镜像自带的数据库,之后通过mysqldump迁移到了MySQL server,目前是只有有pmm server 访问pmm库,MySQL server就crash,并通过守护进程mysqld_safe 自动重启,crash 集尝试重启的一部分信息如下

    11:24:49 UTC - mysqld got signal 11 ;
    This could be because you hit a bug. It is also possible that this binary
    or one of the libraries it was linked against is corrupt, improperly built,
    or misconfigured. This error can also be caused by malfunctioning hardware.
    Attempting to collect some information that could help diagnose the problem.
    As this is a crash and something is definitely wrong, the information
    collection process might fail.
    
    key_buffer_size=8388608
    read_buffer_size=131072
    max_used_connections=2
    max_threads=1000
    thread_count=2
    connection_count=2
    It is possible that mysqld could use up to 
    key_buffer_size + (read_buffer_size + sort_buffer_size)*max_threads = 405496 K  bytes of memory
    Hope that's ok; if not, decrease some variables in the equation.
    
    Thread pointer: 0x7f7ac8000b30
    Attempting backtrace. You can use the following information to find out
    where mysqld died. If you see no messages after this, something went
    terribly wrong...
    stack_bottom = 7f7b20769e28 thread_stack 0x40000
    /usr/local/mysql/bin/mysqld(my_print_stacktrace+0x35)[0xf32bd5]
    /usr/local/mysql/bin/mysqld(handle_fatal_signal+0x4a4)[0x77b844]
    /lib64/libpthread.so.0[0x3db380f710]
    /usr/local/mysql/bin/mysqld(_ZN10Field_blob15copy_blob_valueEP11st_mem_root+0x30)[0x7ab940]
    /usr/local/mysql/bin/mysqld(_Z25mysql_prepare_blob_valuesP3THDR4ListI4ItemEP11st_mem_root+0x35e)[0xe8309e]
    /usr/local/mysql/bin/mysqld(_Z12write_recordP3THDP5TABLEP9COPY_INFOS4_+0x251)[0xe835d1]
    /usr/local/mysql/bin/mysqld(_ZN14Sql_cmd_insert12mysql_insertEP3THDP10TABLE_LIST+0x8d2)[0xe84882]
    /usr/local/mysql/bin/mysqld(_ZN14Sql_cmd_insert7executeEP3THD+0xce)[0xe8500e]
    /usr/local/mysql/bin/mysqld(_Z21mysql_execute_commandP3THDb+0xd92)[0xd10fe2]
    /usr/local/mysql/bin/mysqld(_ZN18Prepared_statement7executeEP6Stringb+0x320)[0xd3ddd0]
    /usr/local/mysql/bin/mysqld(_ZN18Prepared_statement12execute_loopEP6StringbPhS2_+0xdb)[0xd3e04b]
    /usr/local/mysql/bin/mysqld(_Z19mysqld_stmt_executeP3THDmmPhm+0x11f)[0xd3e4cf]
    /usr/local/mysql/bin/mysqld(_Z16dispatch_commandP3THDPK8COM_DATA19enum_server_command+0x74c)[0xd15c3c]
    /usr/local/mysql/bin/mysqld(_Z10do_commandP3THD+0x194)[0xd17114]
    /usr/local/mysql/bin/mysqld(handle_connection+0x294)[0xde1c34]
    /usr/local/mysql/bin/mysqld(pfs_spawn_thread+0x174)[0x11f96f4]
    /lib64/libpthread.so.0[0x3db38079d1]
    /lib64/libpthread.so.0[0x3db38079d1]
    /lib64/libc.so.6(clone+0x6d)[0x3db34e8b6d]
    
    Trying to get some variables.
    Some pointers may be invalid and cause the dump to abort.
    Query (7f7ac80054f0): Query (7f7ac80054f0): is an invalid pointer
    Connection ID (thread ID): 3
    Status: NOT_KILLED
    
    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.180111 19:24:49 mysqld_safe Number of processes running now: 0180111 19:24:49 mysqld_safe mysqld restarted
    2018-01-11T11:24:49.827511Z 0 [Warning] Insecure configuration for --secure-file-priv: Current value does not restrict location of generated files. Consider setting it to a valid, non-empty path.

    原 percona server 版本:5.7.18-16;目前MySQL server 版本:5.7.10

    尝试将MySQL server 版本升级到5.7.20,无法解决问题,后来变更为percona server 5.7的一个分支版本解决问题

    通过rmp 安装percona server

    官方文档

    # 安装yum 源
    yum install http://www.percona.com/downloads/percona-release/redhat/0.1-4/percona-release-0.1-4.noarch.rpm
    # 安装percona server
    yum install Percona-Server-server-57

    防止使用my.cnf启动,指定配置文件启动服务,使用现有的配置文件和数据文件

    # 启动服务
    /usr/bin/mysqld_multi --defaults-file=/etc/mysql/3306.cnf --mysqladmin=/usr/bin/mysqladmin --mysqld=/usr/bin/mysqld_safe --no-log start 3306
    # 关闭服务
    /usr/bin/mysqld_multi --defaults-file=/etc/mysql/3306.cnf --mysqladmin=/usr/bin/mysqladmin --mysqld=/usr/bin/mysqld_safe --no-log stop 3306
    # 登陆
    /usr/bin/mysql -S /tmp/mysql_3306.sock

    关于MySQL server的pid-file 和mysqld_multi 的启动项

    由于启动的选项是--defaults-extra-file 所以同时会读取全局变量文件/etc/my.cnf,可以设置为

    [mysqld]
    ...
    [mysqld_safe]
    ...
    [mysqld_multi] mysqld
    =/usr/local/mysql/bin/mysqld_safe mysqladmin=/usr/local/mysql/bin/mysqladmin

     对于--mysqld 的值可以是二进制文件mysqld的位置(会读取[mysqld]下的配置),守护进程mysqld_safe不会启动

    也可以是mysqld_safe启动脚本的位置(会读取[mysqld_safe]下的配置),mysqld和守护进程mysqld_safe都会启动,如下可以看到两者的运行信息

    ps -ef|grep 3309
    root     27046     1  0 06:44 pts/3    00:00:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --server-id=1 --user=mysql --port=3309 --datadir=/data0/mysql/3309_test --socket=/tmp/mysql_3309.sock --innodb_data_home_dir=/data0/mysql/3309_test --innodb_log_group_home_dir=/data0/mysql/3309_test --transaction-isolation=READ-COMMITTED --explicit_defaults_for_timestamp=on --max_allowed_packet=100M --read_rnd_buffer_size=8M --tmp_table_size=128M --thread_cache_size=300 --max_connections=1000 --max_heap_table_size=128M --open-files-limit=10000 --max_connect_errors=999999999 --symbolic-links=0 --tmpdir=/data0/mysql/tmp --innodb_online_alter_log_max_size=1G --innodb_data_file_path=ibdata1:512M:autoextend --innodb_log_files_in_group=3 --innodb_buffer_pool_size=256M --innodb_log_file_size=100M --innodb_flush_log_at_trx_commit=1 --innodb_open_files=5000 --innodb_lock_wait_timeout=60 --log-error=log-error --slow_query_log_file=slow_query.log --slow_launch_time=2 --slow_query_log=1 --log-bin=mysql-bin --binlog_format=ROW --max_binlog_size=1G --expire_logs_days=15 --master-info-repository=TABLE --relay-log-info-repository=TABLE --gtid-mode=on --enforce-gtid-consistency=on --log-slave-updates=1 --relay-log=relay-log --sync-master-info=1 --skip-slave-start --slave_pending_jobs_size_max=104857600 --log_bin_trust_function_creators=1 --report-port=3309 --report-host=10.211.253.192 --slave-sql-verify-checksum=1 --master-verify-checksum=1 --slave_parallel_type=LOGICAL_CLOCK --slave-parallel-workers=4 --binlog_group_commit_sync_delay=100000 --skip-name-resolve --lower_case_table_names=1 --character-set-server=utf8 --sql_mode=NO_AUTO_VALUE_ON_ZERO,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION --slave_preserve_commit_order=1 --default_password_lifetime=0 --binlog_rows_query_log_events=1
    mysql    30032 27046  1 08:54 pts/3    00:03:32 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/data0/mysql/3309_test --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --server-id=1 --innodb-data-home-dir=/data0/mysql/3309_test --innodb-log-group-home-dir=/data0/mysql/3309_test --transaction-isolation=READ-COMMITTED --explicit-defaults-for-timestamp=on --max-allowed-packet=100M --read-rnd-buffer-size=8M --tmp-table-size=128M --thread-cache-size=300 --max-connections=1000 --max-heap-table-size=128M --max-connect-errors=999999999 --symbolic-links=0 --tmpdir=/data0/mysql/tmp --innodb-online-alter-log-max-size=1G --innodb-data-file-path=ibdata1:512M:autoextend --innodb-log-files-in-group=3 --innodb-buffer-pool-size=256M --innodb-log-file-size=100M --innodb-flush-log-at-trx-commit=1 --innodb-open-files=5000 --innodb-lock-wait-timeout=60 --slow-query-log-file=slow_query.log --slow-launch-time=2 --slow-query-log=1 --log-bin=mysql-bin --binlog-format=ROW --max-binlog-size=1G --expire-logs-days=15 --master-info-repository=TABLE --relay-log-info-repository=TABLE --gtid-mode=on --enforce-gtid-consistency=on --log-slave-updates=1 --relay-log=relay-log --sync-master-info=1 --skip-slave-start --slave-pending-jobs-size-max=104857600 --log-bin-trust-function-creators=1 --report-port=3309 --report-host=10.211.253.192 --slave-sql-verify-checksum=1 --master-verify-checksum=1 --slave-parallel-type=LOGICAL_CLOCK --slave-parallel-workers=4 --binlog-group-commit-sync-delay=100000 --skip-name-resolve --lower-case-table-names=1 --character-set-server=utf8 --sql-mode=NO_AUTO_VALUE_ON_ZERO,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION --slave-preserve-commit-order=1 --default-password-lifetime=0 --binlog-rows-query-log-events=1 --log-error=/data0/mysql/3309_test/log-error.err --open-files-limit=10000 --pid-file=/data0/mysql/3309_test/mysql-bcc03.dev.yz.pid --socket=/tmp/mysql_3309.sock --port=3309

    如果pid-file在配置文件中没有指定,则默认为$datadir/`hostname`.pid

  • 相关阅读:
    python测试开发django-165.form表单序列化json的2种方式
    python测试开发django-164.bootstrap-table 单元格添加select下拉框
    python测试开发django-163.bootstrap-table 表格单元格行内编辑
    python测试开发django-162.ajax 提交表单,防重复提交(beforeSend)
    postman使用教程18-如何取出返回 cookie 中的 sessionId 值
    python测试开发django-161.Celery 定时任务保存到数据库 (djcelery)
    python测试开发django-160.Celery 定时任务 (beat)
    pytest文档77
    python测试开发django-159.Celery 异步与 RabbitMQ 环境搭建
    计算图像数据集的均值和方差(mean, std)用于transforms.Normalize()标准化
  • 原文地址:https://www.cnblogs.com/Bccd/p/8270621.html
Copyright © 2020-2023  润新知