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 ]

買了一台廢柴。。。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM