解決CentOS 7.0 x64下MariaDB異常結束的方法

來源:互聯網
上載者:User

## ssh串連過去先串連過去,然後輸入:

sudo systemctl status mariadb.service Linux學習,http:// linux.it.net.cn
## 這時候可以看到一些錯誤提示:

140819 14:06:14 mysqld_safe Logging to '/var/log/mariadb/mariadb.log'.
140819 14:06:14 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
 
這裡可以看到,log儲存在/var/log/mariadb/mariadb.log裡面,接著我們繼續去查看一下問題: Linux學習,http:// linux.it.net.cn

sudo nano /var/log/mariadb/mariadb.log 


然後可以看到裡面比較重要的問題是出現在了下面這句話裡面:

140819 14:06:14 InnoDB: Fatal error: cannot allocate memory for the buffer pool 


這裡問題就比較明確了,記憶體不足,故而無法分配資源。

## 可行的解決方案大概有這麼三種吧:
1.增加實體記憶體,使用的是DG的伺服器,所以就直接升級配置即可。

2.建立Swap分區,這種方式應該算是比較好的解決方案,使用的命令如下:

## 使用Root許可權,直接sudo -i吧
dd if=/dev/zero of=/swap.dat bs=1024 count=524288
## 524288=512*1024也就是說分配了512M的交換分區
mkswap /swap.dat
swapon /swap.dat
## 然後查看下效果
free -m
## 會出現下面的內容,也就是說已經成功了
             total       used       free     shared    buffers     cached
Mem:           490        453         37          1          1         22
-/+ buffers/cache:        430         60
Swap:          511         48        463
## 這樣還不行,我們需要繼續讓系統自動掛載swap分區,編輯/etc/fstab並添加一行:
/swap.dat      swap    swap      0       0
 Linux學習,http:// linux.it.net.cn
現在基本已經解決問題了,直接啟動mariadb應該是沒有問題了:

sudo systemctl start mariadb.service 
3.修改Mysql記憶體池大小,編輯/etc/my.cnf並修改如下內容:

[mysqld]
innodb_buffer_pool_size=64M
 
## 最後開啟網站吧,應該可以看到內容了。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.