Linux

mysql 在伺服器上導入後停止

  • February 2, 2013

嗨,整晚我都導入了我的伺服器(帶有 ubuntu 的伺服器 Linux 512Mb Ram),這是 Magento(電子商務)數據庫中的一個非常大的導入。當我打開我的網站 mysql 不起作用時,我看到伺服器中的服務已關閉,已停止。我已經重新啟動了所有 apache 2 和 memcache,現在可以工作了。但是我想知道為什麼mysql被停止了。在 /var/log/mysql/error.log 我創建了這一行:

InnoDB: Progress in percents: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52$
InnoDB: Rolling back of trx id 1CA46C3 completed
130126 14:29:58  InnoDB: Rollback of non-prepared transactions completed
130128  6:05:51 [Note] Plugin 'FEDERATED' is disabled.
130128  6:05:59 InnoDB: The InnoDB memory heap is disabled
130128  6:05:59 InnoDB: Mutexes and rw_locks use GCC atomic builtins
130128  6:05:59 InnoDB: Compressed tables use zlib 1.2.3.4
130128  6:06:11 InnoDB: Initializing buffer pool, size = 128.0M
130128  6:06:19 InnoDB: Completed initialization of buffer pool
130128  6:11:51 [Note] Plugin 'FEDERATED' is disabled.
130128  6:12:01 InnoDB: The InnoDB memory heap is disabled
130128  6:12:01 InnoDB: Mutexes and rw_locks use GCC atomic builtins
130128  6:12:01 InnoDB: Compressed tables use zlib 1.2.3.4
130128  6:12:19 InnoDB: Initializing buffer pool, size = 128.0M
InnoDB: mmap(137363456 bytes) failed; errno 12
130128  6:12:23 InnoDB: Completed initialization of buffer pool
130128  6:12:23 InnoDB: Fatal error: cannot allocate memory for the buffer pool
130128  6:12:28 [ERROR] Plugin 'InnoDB' init function returned error.
130128  6:12:29 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
130128  6:12:30 [ERROR] Unknown/unsupported storage engine: InnoDB
130128  6:12:30 [ERROR] Aborting

130128  6:12:32 [Note] /usr/sbin/mysqld: Shutdown complete


130128  6:21:04 [Note] /usr/sbin/mysqld: Shutdown complete
130128  6:21:03 [Note] Plugin 'FEDERATED' is disabled.
130128  6:21:03 InnoDB: The InnoDB memory heap is disabled
130128  6:21:03 InnoDB: Mutexes and rw_locks use GCC atomic builtins
130128  6:21:03 InnoDB: Compressed tables use zlib 1.2.3.4
130128  6:21:03 InnoDB: Initializing buffer pool, size = 128.0M
InnoDB: mmap(137363456 bytes) failed; errno 12
130128  6:21:03 InnoDB: Completed initialization of buffer pool
130128  6:21:03 InnoDB: Fatal error: cannot allocate memory for the buffer pool
130128  6:21:03 [ERROR] Plugin 'InnoDB' init function returned error.
130128  6:21:03 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
130128  6:21:03 [ERROR] Unknown/unsupported storage engine: InnoDB
130128  6:21:03 [ERROR] Aborting

130128  6:21:04 [Note] /usr/sbin/mysqld: Shutdown complete

你能幫我找出問題嗎?這條線對理解問題有用嗎?

正如評論中所建議的,您應該安裝任何監控軟體。

如果您的問題再次發生,您將能夠找出原因。

請注意,有些人遇到了同樣的問題,並通過添加 swap解決了它。

首先,我無法想像你為什麼要執行一個只有 512MB RAM 的 Magento 商店——這是災難的根源

130128 6:21:03 InnoDB:致命錯誤:無法為緩衝池分配記憶體

這是兩件事之一。

你在你的記憶體中分配了過多的記憶體 my.cnf

如果您從 Internet 上複製並粘貼了“優化的”Magento MySQL 配置,這並不奇怪——沒有註意您的硬體和 OP 硬體的差異。

您可以通過執行來驗證,

mysql> show variables like 'innodb_buffer%';

如果該數字超過了您的 RAM 量 - 然後在您的 MySQL 配置中減少它/etc/mysql/my.cnf/etc/my.cnf重新啟動 MySQL。

你被限制 ulimit

即使您的 MySQL 配置在可接受的記憶體限制內 - 您也可能受到伺服器設置的限制。

您可以通過執行來驗證,

ulimit  -a

並檢查 和 的virtual memorymax memory size。通過執行來測試它

ulimit -v unlimited
ulimit -m unlimited

然後啟動 MySQL

/etc/init.d/mysql start

引用自:https://serverfault.com/questions/472948