Google Cloud的MySQL炸掉了 之 參數調整方法

搜尋了一下,還蠻多人有一樣的困擾的,MySQL突然就被衝到炸掉。
首先第一步,調閱MySQL log來看一下,發現記憶體調用失敗,於是把內部log打開:

[mysqld_safe]
log_error=/var/log/mysql/mysql_error.log

[mysqld]
log_error=/var/log/mysql/mysql_error.log

發現總是跑出

InnoDB: The InnoDB memory heap is disabled

如果沒開,他會直接吃主機記憶體,處理一下 /etc/mysql/my.cnf,加入這句:

innodb_use_sys_malloc =  0

重開後就出現訊息

InnoDB: Initializing buffer pool, size = 128.0M

是的,預設buffer pool為128MB,稍微爬文了一下發現是夠用的,以中型網站來說。
這個參數並不是越大越好,要看機器本身夠不夠用。

—-參考文獻—-
[1] Ubuntu 安裝和設定 MySQL – http://www.arthurtoday.com/2009/11/ubuntu-910-mysql.html
[2] mytop – MySQL 效能監測工具 – http://www.arthurtoday.com/2013/04/ubuntu-install-mytop.html
[3] Amazon EC2 免費實例: MySQL 崩潰之資料庫 log 查看及設定調教 – http://40era.com/4245/
[4] 15.14 InnoDB Startup Options and System Variables – http://dev.mysql.com/doc/refman/5.7/en/innodb-parameters.html
[5] How and When To Enable MySQL Logs – http://www.pontikis.net/blog/how-and-when-to-enable-mysql-logs
[6] How to Fix ERROR InnoDB: The InnoDB memory heap is disabled – https://www.debian-tutorials.com/how-to-fix-error-innodb-the-innodb-memory-heap-is-disabled

快速針對 WordPress 的 wpdb 進行debug

直接貼入程式碼使用即可

<?php
// Print last SQL query string
echo 'Last Query : ' . $wpdb->last_query . '<br>';
// Print last SQL query result
echo 'Last Result : ';
var_dump( $wpdb->last_result );
// Print last SQL query error
echo 'Last Error : ' . $wpdb->last_error . '<br>';
?>

解決WordPress改網址後圖片出不來的問題

最近在做網站時,都是在host以測試網址先架好wordpress,資料也都上架後才買網址然後更換,就會有很多文章的圖片無法正常顯示,因為主要網址已經換掉了,即使在wordpress後台設定改了網址,也只會影響到wordpress預設欄位的網址,很多theme的post meta不會自動更新網址,只好手動去phpMyAdmin敲一些SQL指令了:

在SQL指令那邊複製貼上以下文字(記得把網址換成自己的來源與目標網址)

1
2
3
4
UPDATE wp_options SET option_value = replace(option_value, 'http://舊網址', 'http://新網址') WHERE option_name = 'home' OR option_name = 'siteurl';
UPDATE wp_posts SET guid = replace(guid, 'http://舊網址','http://新網址');
UPDATE wp_posts SET post_content = replace(post_content, 'http://舊網址', 'http://新網址');
UPDATE wp_postmeta SET meta_value = replace(meta_value,'http://舊網址','http://新網址');