您的位置:首页 > 数据库 > MySQL

MySQL运行一段时间后自动停止问题的排查

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

CPU: 1核

内存: 1 GB

操作系统: CentOS 7.2 64位

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

使用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 ]


买了一台废柴。。。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: