在多個(gè)月之前,也就是服務(wù)器剛剛搭建的時(shí)候,標題中的MySQL問(wèn)題就出現了,很是奇怪,博客過(guò)一段時(shí)間就毫無(wú)征兆的掛掉了,提示連接數據庫失敗,然后重新啟動(dòng)一下MySQL服務(wù)就又可以正常運行了。但是這個(gè)問(wèn)題總是像莫名其妙的發(fā)生,時(shí)不時(shí)的給我來(lái)一點(diǎn)小驚喜,小意外,我每次重啟MySQL服務(wù)之后就又可以正常運行了,所以就沒(méi)去怎么解決這個(gè)問(wèn)題。但是最近真的是忍無(wú)可忍了,決定解決了它。
解決問(wèn)題當然是要看問(wèn)題出在哪里,好在MySQL有自己的錯誤日志可以供我們分析。那么錯誤日志在那里呢? 我們可以用下面的方法找到這個(gè)文件的位置:
錯誤日志已經(jīng)找到了,我們打開(kāi)看一下,通過(guò)我的分析,我的這個(gè)MySQL運行出錯有多處,但是直接導致MySQL宕機的只有一處。日志內容如下:
分析得知,The InnoDB memory heap is disabled這個(gè)錯誤導致,這句話(huà)的大概意思就是InnoDB內存堆是禁用的。
通過(guò)查閱資料發(fā)現,MySQL默認的配置使用了操作系統的內存分配器,禁用了InnoDB的內置內存分配器所至。默認的innodb_use_sys_malloc配置是決定內存的分配器,當配置為1時(shí)是使用操作系統內存的分配器,當配置為1時(shí)使用InnoDB的默認分配器。所以我們只要將這個(gè)配置修改為0即可。
找到MySQL的配置文件修改innodb_use_sys_malloc配置項為0.
查看配置文件中的配置后發(fā)現了一個(gè)尷尬的問(wèn)題,竟然沒(méi)有找到這個(gè)innodb_use_sys_malloc配置項。原來(lái)MySQL在版本升級的時(shí)候曾經(jīng)取消了這個(gè)配置。但是人工添加上也是可以生效的。
Next activation : never
2019-07-13 14:46:49 5649 [Note] /www/server/mysql/bin/mysqld: Normal shutdown
2019-07-13 14:46:49 5649 [Note] Giving 0 client threads a chance to die gracefully
2019-07-13 14:46:49 5649 [Note] Event Scheduler: Purging the queue. 0 events
2019-07-13 14:46:49 5649 [Note] Shutting down slave threads
2019-07-13 14:46:49 5649 [Note] Forcefully disconnecting 0 remaining clients
2019-07-13 14:46:49 5649 [Note] Binlog end
2019-07-13 14:46:49 5649 [Note] Shutting down plugin 'partition'
2019-07-13 14:46:49 5649 [Note] Shutting down plugin 'PERFORMANCE_SCHEMA'
2019-07-13 14:46:49 5649 [Note] Shutting down plugin 'INNODB_SYS_DATAFILES'
2019-07-13 14:46:49 5649 [Note] Shutting down plugin 'INNODB_SYS_TABLESPACES'
2019-07-13 14:46:49 5649 [Note] Shutting down plugin 'INNODB_SYS_FOREIGN_COLS'
2019-07-13 14:46:49 5649 [Note] Shutting down plugin 'INNODB_SYS_FOREIGN'
2019-07-13 14:46:49 5649 [Note] Shutting down plugin 'INNODB_SYS_FIELDS'
2019-07-13 14:46:49 5649 [Note] Shutting down plugin 'INNODB_SYS_COLUMNS'
2019-07-13 14:46:49 5649 [Note] Shutting down plugin 'INNODB_SYS_INDEXES'
2019-07-13 14:46:49 5649 [Note] Shutting down plugin 'INNODB_SYS_TABLESTATS'
2019-07-13 14:46:49 5649 [Note] Shutting down plugin 'INNODB_SYS_TABLES'
2019-07-13 14:46:49 5649 [Note] Shutting down plugin 'INNODB_FT_INDEX_TABLE'
2019-07-13 14:46:49 5649 [Note] Shutting down plugin 'INNODB_FT_INDEX_CACHE'
2019-07-13 14:46:49 5649 [Note] Shutting down plugin 'INNODB_FT_CONFIG'
2019-07-13 14:46:49 5649 [Note] Shutting down plugin 'INNODB_FT_BEING_DELETED'
2019-07-13 14:46:49 5649 [Note] Shutting down plugin 'INNODB_FT_DELETED'
2019-07-13 14:46:49 5649 [Note] Shutting down plugin 'INNODB_FT_DEFAULT_STOPWORD'
2019-07-13 14:46:49 5649 [Note] Shutting down plugin 'INNODB_METRICS'
2019-07-13 14:46:49 5649 [Note] Shutting down plugin 'INNODB_BUFFER_POOL_STATS'
2019-07-13 14:46:49 5649 [Note] Shutting down plugin 'INNODB_BUFFER_PAGE_LRU'
2019-07-13 14:46:49 5649 [Note] Shutting down plugin 'INNODB_BUFFER_PAGE'
2019-07-13 14:46:49 5649 [Note] Shutting down plugin 'INNODB_CMP_PER_INDEX_RESET'
2019-07-13 14:46:49 5649 [Note] Shutting down plugin 'INNODB_CMP_PER_INDEX'
2019-07-13 14:46:49 5649 [Note] Shutting down plugin 'INNODB_CMPMEM_RESET'
2019-07-13 14:46:49 5649 [Note] Shutting down plugin 'INNODB_CMPMEM'
2019-07-13 14:46:49 5649 [Note] Shutting down plugin 'INNODB_CMP_RESET'
2019-07-13 14:46:49 5649 [Note] Shutting down plugin 'INNODB_CMP'
2019-07-13 14:46:49 5649 [Note] Shutting down plugin 'INNODB_LOCK_WAITS'
2019-07-13 14:46:49 5649 [Note] Shutting down plugin 'INNODB_LOCKS'
2019-07-13 14:46:49 5649 [Note] Shutting down plugin 'INNODB_TRX'
2019-07-13 14:46:49 5649 [Note] Shutting down plugin 'InnoDB'
2019-07-13 14:46:49 5649 [Note] InnoDB: FTS optimize thread exiting.
2019-07-13 14:46:49 5649 [Note] InnoDB: Starting shutdown...
2019-07-13 14:46:50 5649 [Note] InnoDB: Shutdown completed; log sequence number 341778147
2019-07-13 14:46:50 5649 [Note] Shutting down plugin 'BLACKHOLE'
2019-07-13 14:46:50 5649 [Note] Shutting down plugin 'ARCHIVE'
2019-07-13 14:46:50 5649 [Note] Shutting down plugin 'MRG_MYISAM'
2019-07-13 14:46:50 5649 [Note] Shutting down plugin 'MyISAM'
2019-07-13 14:46:50 5649 [Note] Shutting down plugin 'MEMORY'
2019-07-13 14:46:50 5649 [Note] Shutting down plugin 'CSV'
2019-07-13 14:46:50 5649 [Note] Shutting down plugin 'sha256_password'
2019-07-13 14:46:50 5649 [Note] Shutting down plugin 'mysql_old_password'
2019-07-13 14:46:50 5649 [Note] Shutting down plugin 'mysql_native_password'
2019-07-13 14:46:50 5649 [Note] Shutting down plugin 'binlog'
2019-07-13 14:46:50 5649 [Note] /www/server/mysql/bin/mysqld: Shutdown complete
2019-07-13 14:46:51 9424 [Note] Plugin 'FEDERATED' is disabled.
2019-07-13 14:46:51 2ae7df6e3f00 InnoDB: Warning: Setting innodb_use_sys_malloc to FALSE is DEPRECATED. This option may be removed in future releases, together with the InnoDB's internal memory allocator.
2019-07-13 14:46:51 9424 [Note] InnoDB: Using atomics to ref count buffer pool pages
2019-07-13 14:46:51 9424 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
2019-07-13 14:46:51 9424 [Note] InnoDB: Memory barrier is not used
2019-07-13 14:46:51 9424 [Note] InnoDB: Compressed tables use zlib 1.2.3
2019-07-13 14:46:51 9424 [Note] InnoDB: Using Linux native AIO
2019-07-13 14:46:51 9424 [Note] InnoDB: Using CPU crc32 instructions
2019-07-13 14:46:51 9424 [Note] InnoDB: Initializing buffer pool, size = 16.0M
2019-07-13 14:46:51 9424 [Note] InnoDB: Completed initialization of buffer pool
2019-07-13 14:46:51 9424 [Note] InnoDB: Highest supported file format is Barracuda.
2019-07-13 14:46:51 9424 [Note] InnoDB: 128 rollback segment(s) are active.
2019-07-13 14:46:51 9424 [Note] InnoDB: Waiting for purge to start
2019-07-13 14:46:52 9424 [Note] InnoDB: 5.6.37 started; log sequence number 341778147
2019-07-13 14:46:52 9424 [Note] Server hostname (bind-address): '*'; port: 3306
2019-07-13 14:46:52 9424 [Note] IPv6 is available.
2019-07-13 14:46:52 9424 [Note] - '::' resolves to '::';
2019-07-13 14:46:52 9424 [Note] Server socket created on IP: '::'.
2019-07-13 14:46:52 9424 [Note] Event Scheduler: Loaded 0 events
2019-07-13 14:46:52 9424 [Note] /www/server/mysql/bin/mysqld: ready for connections.
Version: '5.6.37-log' socket: '/tmp/mysql.sock' port: 3306 Source distribution