zoukankan      html  css  js  c++  java
  • MySQL运行一段时间后自动停止问题的排查

    在进入主题前,一定要先吐槽下自己,前段时间购买了一台阿里云服务器,最开始打算只是自己个人用的,就买了一台配置很寒碜的服务器:

    • CPU: 1核
    • 内存: 1 GB
    • 操作系统: CentOS 7.2 64位

    这个配置亮出来估计好多人都已经知道答案了,下面就说下问题排查的步骤:

    1. 使用Xshell远程连接上服务器,使用命令 service mysqld restart重启mysql,提示:
    MySQL server PID file could not be found! [FAILED]
    Starting MySQL.The server quit without updating PID file(/[FAILED]server/mysql/data/iZ2zeabsxnnfzh13g8yqxjZ.pid).

      2. 去看mysql的错误日志,但是不知道错误日志在哪里,先去找找mysql的my.cnf文件,这里需要注意下,我在mysql的安装目录下的确找到了一个my.cnf文件,但是改了很多配置项发现没有任何作用,google后才知道这个并不是当前使用的配置文件my.cnf,参考这篇文章找到当前使用的配置文件https://my.oschina.net/manech/blog/861991,找到了配置文件(/etc/my.cnf),找到了错误日志的地方:

    log-error=/alidata/log/mysql/error.log,

      3. 去错误日志看看:

    2017-09-03 17:38:21 20390 [Note] InnoDB: The InnoDB memory heap is disabled
    2017-09-03 17:38:21 20390 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
    2017-09-03 17:38:21 20390 [Note] InnoDB: Memory barrier is not used
    2017-09-03 17:38:21 20390 [Note] InnoDB: Compressed tables use zlib 1.2.3
    2017-09-03 17:38:21 20390 [Note] InnoDB: Using Linux native AIO
    2017-09-03 17:38:21 20390 [Note] InnoDB: Using CPU crc32 instructions
    2017-09-03 17:38:21 20390 [Note] InnoDB: Initializing buffer pool, size = 128.0M
    InnoDB: mmap(137363456 bytes) failed; errno 12
    2017-09-03 17:38:21 20390 [ERROR] InnoDB: Cannot allocate memory for the buffer pool
    2017-09-03 17:38:21 20390 [ERROR] Plugin ‘InnoDB’ init function returned error.
    2017-09-03 17:38:21 20390 [ERROR] Plugin ‘InnoDB’ registration as a STORAGE ENGINE failed.
    2017-09-03 17:38:21 20390 [ERROR] Unknown/unsupported storage engine: InnoDB
    2017-09-03 17:38:21 20390 [ERROR] Aborting
    2017-09-03 17:38:21 20390 [Note] Binlog end
    2017-09-03 17:38:21 20390 [Note] Shutting down plugin ‘partition’
    2017-09-03 17:38:21 20390 [Note] Shutting down plugin ‘PERFORMANCE_SCHEMA’

    其中标为黄色的就比较重要了,百度Cannot allocate memory for the buffer pool都说是无法给innodb分配足够的内存,大多数给出的解决的方案是:修改innodb_buffer_pool_size,但是我这个my.cnf里面没有,那就加一个被呗,顺便将这个字段设置成200M,重启mysql发现一样的结果,还是启动不了,去看日志还是一样的问题,还是太大咯?

      4.用free -m看下

                  total        used        free      shared  buff/cache   available
    Mem:            992         574         159           0         258         260
    Swap:             0           0           0

    只有185M的内存了,只能再改小点咯,改成64.

      5.service mysqld restart,终于

    Starting MySQL. [ OK ]

    买了一台废柴。。。

  • 相关阅读:
    正则表达式提取/过滤字符串中的汉字
    笔记本磁盘中OEM分区的使用
    window10家庭版解决IIS中万维网服务的安全性中无Windows身份验证
    google插件跨域含用户请求WebApi解决的方案
    webApi前端ajax调用后端返回{"readyState":0,"status":0,"statusText":"error"}解决方案
    在VS的依赖项中引用项目
    无需QQ成为好友,直接启动QQ客户端聊天
    jquery点击添加样式,再次点击移除样式
    KVM管理工具 WebVirtMgr
    Proxmox VE:自建虚拟化方案
  • 原文地址:https://www.cnblogs.com/Steven-shi/p/7486707.html
Copyright © 2011-2022 走看看