Amazon EC2 資料庫無預警中斷連結(MySQL 當掉or當機).

在ec2開始安裝wp後,起初跑起來都很順,但似乎資料量或是同時開啟流量大的時候,就發生當機現象,導致出現”資料庫無法連結”等字眼,起初我以為是Amazon的問題,但心想,都開這麼大間的廟,怎麼可能會出這樣的問題,也曾經想過是否我的資料庫密碼已經被改過,所以導致無法連結,後來進入phpmyadmin發現一個問題-Innodb 型態設置innodb

 

我們發現此類行為MyISAM,但是應該要設定成Innodb型態才對,因此我們需要快速的方法來設定:

1.開啟Putty軟體,使用ssh連結,並且進入root權限(這邊不再累述,請直接看這篇

2.命令:mysql -u root -p  (輸入密碼後 進入 MySQL 資料庫),並且登入你的mysql密碼

3.命令:mysql>use 資料庫名稱    (進入要改的資料庫名稱)

4.將資料表改成INNODB,語法為

ALTER TABLE 資料表名稱 ENGINE = INNODB;

例如:

ALTER TABLE wp_users ENGINE = INNODB;
ALTER TABLE wp_posts ENGINE = INNODB;
ALTER TABLE wp_contact_form_7 ENGINE = INNODB;
ALTER TABLE wp_baidusubmit_sitemap ENGINE = INNODB;
ALTER TABLE wp_baidusubmit_urlstat ENGINE = INNODB;
ALTER TABLE wp_commentmeta ENGINE = INNODB;
ALTER TABLE wp_comments ENGINE = INNODB;
ALTER TABLE wp_icl_cms_nav_cache ENGINE = INNODB;
ALTER TABLE wp_links ENGINE = INNODB;
ALTER TABLE wp_options ENGINE = INNODB;
ALTER TABLE wp_postmeta ENGINE = INNODB;
ALTER TABLE wp_terms ENGINE = INNODB;
ALTER TABLE wp_term_relationships ENGINE = INNODB;
ALTER TABLE wp_term_taxonomy ENGINE = INNODB;
ALTER TABLE wp_usermeta ENGINE = INNODB;
ALTER TABLE wp_wpsb_users ENGINE = INNODB;
ALTER TABLE wp_woocommerce_attribute_taxonomies ENGINE = INNODB;
ALTER TABLE wp_woocommerce_order_itemmeta ENGINE = INNODB;
ALTER TABLE wp_woocommerce_order_items ENGINE = INNODB;
ALTER TABLE wp_woocommerce_tax_rates ENGINE = INNODB;
ALTER TABLE wp_woocommerce_tax_rate_locations ENGINE = INNODB;
ALTER TABLE wp_woocommerce_termmeta ENGINE = INNODB;
ALTER TABLE wp_woocommerce_downloadable_product_permissions ENGINE = INNODB;
ALTER TABLE wp_revslider_css ENGINE = INNODB;
ALTER TABLE wp_revslider_layer_animations ENGINE = INNODB;
ALTER TABLE wp_revslider_settings ENGINE = INNODB;
ALTER TABLE wp_revslider_sliders ENGINE = INNODB;
ALTER TABLE wp_revslider_slides ENGINE = INNODB;
ALTER TABLE wp_yith_wcwl ENGINE = INNODB;

以上是我改的table目錄,可以把TABLE後面改成自己的就可以,另外也可以大量同時更改,直接貼上就enter就可以了。

5.最後可以用phpmyadmin進入確認是否有改善。

6.用ftp更改(或增加) /etc/mysql/my.conf裡面如下:

[mysqld]
innodb_buffer_pool_size = 1M

如此簡單便可以解決一直當機的問題了。