前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MySQL启动报错Starting MySQL. ERROR! The server quit without updating PID file (/var/lib/mysql/instance-z

MySQL启动报错Starting MySQL. ERROR! The server quit without updating PID file (/var/lib/mysql/instance-z

作者头像
JaneYork
发布2023-10-11 14:09:46
1840
发布2023-10-11 14:09:46
举报

修改innodb_buffer_pool_size 或者加大swap分区空间

查看错误日志err:

代码语言:javascript
复制
2019-01-16 10:22:48 39795 [Note] Plugin 'FEDERATED' is disabled.
2019-01-16 10:22:48 39795 [Note] InnoDB: Using atomics to ref count buffer pool pages
2019-01-16 10:22:48 39795 [Note] InnoDB: The InnoDB memory heap is disabled
2019-01-16 10:22:48 39795 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
2019-01-16 10:22:48 39795 [Note] InnoDB: Memory barrier is not used
2019-01-16 10:22:48 39795 [Note] InnoDB: Compressed tables use zlib 1.2.11
2019-01-16 10:22:48 39795 [Note] InnoDB: Using Linux native AIO
2019-01-16 10:22:48 39795 [Note] InnoDB: Using CPU crc32 instructions
2019-01-16 10:22:48 39795 [Note] InnoDB: Initializing buffer pool, size = 128.0M
InnoDB: mmap(137363456 bytes) failed; errno 12
2019-01-16 10:22:48 39795 [ERROR] InnoDB: Cannot allocate memory for the buffer pool
2019-01-16 10:22:48 39795 [ERROR] Plugin 'InnoDB' init function returned error.
2019-01-16 10:22:48 39795 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
2019-01-16 10:22:48 39795 [ERROR] Unknown/unsupported storage engine: InnoDB
2019-01-16 10:22:48 39795 [ERROR] Aborting

解决方式一:

innodb_buffer_pool_size = 8M (安装MySQL5.6到小于1G内存服务器上,启动MySQL会失败,报内存分配失败的错误,此时,需要修改my.cnf的内存大小从标准128M设置到8M或者64M)

解决方式二:

增加swap缓存,查看free -m或者free -h

代码语言:javascript
复制
##创建大小为1024M的文件
dd if=/dev/zero of=/swapfile bs=1M count=1024
##将该文件变为swap
mkswap /swapfile
##启用swap文件
swapon /swapfile

 执行结果打印:

代码语言:javascript
复制
[root@instance-zq6zwn1b ~]# dd if=/dev/zero of=/swapfile bs=1M count=1024
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 15.5654 s, 69.0 MB/s
[root@instance-zq6zwn1b ~]# mkswap /swapfile
Setting up swapspace version 1, size = 1048572 KiB
no label, UUID=4bccb9aa-6e83-442c-97eb-a9c8c1ddd1e6
[root@instance-zq6zwn1b ~]# swapon /swapfile
##挂载时会报一个权限错误,建议将swapfile文件的权限修改为600
swapon: /swapfile: insecure permissions 0644, 0600 suggested.
[root@instance-zq6zwn1b ~]# free
              total        used        free      shared  buff/cache   available
Mem:         995548      245408       72700       19724      677440      564924
Swap:       1048572           0     1048572

此时没有写到/etc/fstab,重启需要手动挂载,写到了/etc.rc.local

写入/etc/fstab,以后不用手动挂载。

代码语言:javascript
复制
vi /etc/fstab
##末尾添加
/swapfile swap swap defaults 0 0

===============取消swap分区===================

查看swap:cat /proc/swaps

取消激活:swapoff /swapfile

删除配置的信息:进入 vi /etc/fstab 删除配置的信息

删除文件:rm -f /swapfile

查看swap使用情况:swapon -s

显示分区信息:sfdisk -l


swap分区一般为内存的2倍,但最大不超过2G

一般来说可以按照如下规则设置swap大小:

4G以内的物理内存,SWAP 设置为内存的2倍。

4-8G的物理内存,SWAP 等于内存大小。

8-64G 的物理内存,SWAP 设置为8G。

64-256G物理内存,SWAP 设置为16G。

系统在什么情况下才会使用SWAP?

实际上,并不是等所有的物理内存都消耗完毕之后,才去使用swap的空间,什么时候使用是由swappiness 参数值控制。

cat /proc/sys/vm/swappiness

swappiness=0的时候表示最大限度使用物理内存,然后才是 swap空间,

swappiness=100的时候表示积极的使用swap分区,并且把内存上的数据及时的搬运到swap空间里面。

现在一般都尽可能设置小写。

永久修改:

在/etc/sysctl.conf 文件里添加如下参数:

vm.swappiness=10

然后reboot now

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2023-10-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 MySQL
腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档