MySQL启动时报 无法申请内存错误解决方式 Fatal error: cannot allocate memory for the buffer pool

国庆前配置的MySQL服务器重启后无法启动,通过调整innodb_buffer_pool_size参数无效后,最终通过增加交换分区大小解决了MySQL启动问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

国庆前配置的MySQL服务器,今天重启,MySQL就启动不了,开始以为是MySQL 的PID文件没有权限,折腾了一下,还是没启动成功,于是度娘了一下,发现很多介绍的都是说my.cnf中的innodb_buffer_pool_size参数设置太小,然后我就修改这个参数值,再重试,依然没有启动成功,没办法,接着度娘,然而还是没有什么鸟用,千篇一律的都是介绍说innodb_buffer_pool_size的数值调大点,于是又接着度娘,终于找到一个解决方案,就是添加交换分区的大小,尝试了一下,标题中的错误得以排除,以下是具体实现:

sudo dd if=/dev/zero of=/swapfile bs=1M count=1024 #增加1G的SWAP进去
sudo mkswap /swapfile
sudo swapon /swapfile
free

然后再尝试启动MySQL,得以解决,MYSQL启动正常!

root@ecm-e00f:/# sudo journalctl -u mariadb -xe # 检查启动错误 Jun 25 16:43:09 ecm-e00f mariadbd[336798]: 2025-06-25 16:43:09 0 [Note] InnoDB: Initializing buffer pool, total> Jun 25 16:43:09 ecm-e00f mariadbd[336798]: 2025-06-25 16:43:09 0 [Note] InnoDB: Initialized memory pressure eve> Jun 25 16:43:09 ecm-e00f mariadbd[336798]: 2025-06-25 16:43:09 0 [Note] InnoDB: Completed initialization of buf> Jun 25 16:43:09 ecm-e00f mariadbd[336798]: 2025-06-25 16:43:09 0 [Note] InnoDB: File system buffers for log dis> Jun 25 16:43:09 ecm-e00f mariadbd[336798]: 2025-06-25 16:43:09 0 [Note] InnoDB: End of log at LSN=46996 Jun 25 16:43:09 ecm-e00f mariadbd[336798]: 2025-06-25 16:43:09 0 [Note] InnoDB: 128 rollback segments are activ> Jun 25 16:43:09 ecm-e00f mariadbd[336798]: 2025-06-25 16:43:09 0 [Note] InnoDB: Setting file './ibtmp1' size to> Jun 25 16:43:09 ecm-e00f mariadbd[336798]: 2025-06-25 16:43:09 0 [Note] InnoDB: File './ibtmp1' size is now 12.> Jun 25 16:43:09 ecm-e00f mariadbd[336798]: 2025-06-25 16:43:09 0 [Note] InnoDB: log sequence number 46996; tran> Jun 25 16:43:09 ecm-e00f mariadbd[336798]: 2025-06-25 16:43:09 0 [Note] InnoDB: Loading buffer pool(s) from /yu> Jun 25 16:43:09 ecm-e00f mariadbd[336798]: 2025-06-25 16:43:09 0 [Note] Plugin 'FEEDBACK' is disabled. Jun 25 16:43:09 ecm-e00f mariadbd[336798]: 2025-06-25 16:43:09 0 [Note] Server socket created on IP: '0.0.0.0'. Jun 25 16:43:09 ecm-e00f mariadbd[336798]: 2025-06-25 16:43:09 0 [Note] Server socket created on IP: '::'. Jun 25 16:43:09 ecm-e00f mariadbd[336798]: 2025-06-25 16:43:09 0 [Note] InnoDB: Buffer pool(s) load completed a> Jun 25 16:43:09 ecm-e00f mariadbd[336798]: 2025-06-25 16:43:09 0 [Note] /usr/sbin/mariadbd: ready for connectio> Jun 25 16:43:09 ecm-e00f mariadbd[336798]: Version: '10.11.11-MariaDB-0+deb12u1' socket: '/run/mysqld/mysqld.s> Jun 25 16:43:09 ecm-e00f systemd[1]: Started mariadb.service - MariaDB 10.11.11 database server. ░░ Subject: A start job for unit mariadb.service has finished successfully ░░ Defined-By: systemd ░░ Support: https://www.debian.org/support ░░ ░░ A start job for unit mariadb.service has finished successfully. ░░ ░░ The job identifier is 57427. Jun 25 16:43:09 ecm-e00f /etc/mysql/debian-start[336825]: Checking for insecure root accounts. Jun 25 16:43:09 ecm-e00f /etc/mysql/debian-start[336829]: Triggering myisam-recover for all MyISAM tables and a> lines 960-985/985 (END) Jun 25 16:43:09 ecm-e00f mariadbd[336798]: 2025-06-25 16:43:09 0 [Note] InnoDB: Initializing buffer pool, total size = 128.000MiB, chunk size = 2.000MiB Jun 25 16:43:09 ecm-e00f mariadbd[336798]: 2025-06-25 16:43:09 0 [Note] InnoDB: Initialized memory pressure event listener Jun 25 16:43:09 ecm-e00f mariadbd[336798]: 2025-06-25 16:43:09 0 [Note] InnoDB: Completed initialization of buffer pool Jun 25 16:43:09 ecm-e00f mariadbd[336798]: 2025-06-25 16:43:09 0 [Note] InnoDB: File system buffers for log disabled (block size=512 bytes) Jun 25 16:43:09 ecm-e00f mariadbd[336798]: 2025-06-25 16:43:09 0 [Note] InnoDB: End of log at LSN=46996 Jun 25 16:43:09 ecm-e00f mariadbd[336798]: 2025-06-25 16:43:09 0 [Note] InnoDB: 128 rollback segments are active. Jun 25 16:43:09 ecm-e00f mariadbd[336798]: 2025-06-25 16:43:09 0 [Note] InnoDB: Setting file './ibtmp1' size to 12.000MiB. Physically writing the file full; Please wait ... Jun 25 16:43:09 ecm-e00f mariadbd[336798]: 2025-06-25 16:43:09 0 [Note] InnoDB: File './ibtmp1' size is now 12.000MiB. Jun 25 16:43:09 ecm-e00f mariadbd[336798]: 2025-06-25 16:43:09 0 [Note] InnoDB: log sequence number 46996; transaction id 14 Jun 25 16:43:09 ecm-e00f mariadbd[336798]: 2025-06-25 16:43:09 0 [Note] InnoDB: Loading buffer pool(s) from /yunxiang/data/mysql/ib_buffer_pool Jun 25 16:43:09 ecm-e00f mariadbd[336798]: 2025-06-25 16:43:09 0 [Note] Plugin 'FEEDBACK' is disabled. Jun 25 16:43:09 ecm-e00f mariadbd[336798]: 2025-06-25 16:43:09 0 [Note] Server socket created on IP: '0.0.0.0'. Jun 25 16:43:09 ecm-e00f mariadbd[336798]: 2025-06-25 16:43:09 0 [Note] Server socket created on IP: '::'. Jun 25 16:43:09 ecm-e00f mariadbd[336798]: 2025-06-25 16:43:09 0 [Note] InnoDB: Buffer pool(s) load completed at 250625 16:43:09 Jun 25 16:43:09 ecm-e00f mariadbd[336798]: 2025-06-25 16:43:09 0 [Note] /usr/sbin/mariadbd: ready for connections. Jun 25 16:43:09 ecm-e00f mariadbd[336798]: Version: '10.11.11-MariaDB-0+deb12u1' socket: '/run/mysqld/mysqld.sock' port: 3306 Debian 12 Jun 25 16:43:09 ecm-e00f systemd[1]: Started mariadb.service - MariaDB 10.11.11 database server. ░░ Subject: A start job for unit mariadb.service has finished successfully ░░ Defined-By: systemd ░░ Support: https://www.debian.org/support ░░ ░░ A start job for unit mariadb.service has finished successfully. ░░ ░░ The job identifier is 57427. Jun 25 16:43:09 ecm-e00f /etc/mysql/debian-start[336825]: Checking for insecure root accounts. Jun 25 16:43:09 ecm-e00f /etc/mysql/debian-start[336829]: Triggering myisam-recover for all MyISAM tables and aria-recover for all Aria tables ~
最新发布
06-26
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值