在ec2開始安裝wp後,起初跑起來都很順,但似乎資料量或是同時開啟流量大的時候,就發生當機現象,導致出現”資料庫無法連結”等字眼,起初我以為是Amazon的問題,但心想,都開這麼大間的廟,怎麼可能會出這樣的問題,也曾經想過是否我的資料庫密碼已經被改過,所以導致無法連結,後來進入phpmyadmin發現一個問題-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
如此簡單便可以解決一直當機的問題了。