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

透過 FileZilla 存取 Google Cloud Platform 主機

想從 FileZilla 存取 Google Cloud Platform 上的 instance,只需要 Generate SSH Key 即可!

進 Terminal,使用者帳號即可,此時不需切換本地端 root

Step 1. 安裝Google Cloud SDK

安裝

curl https://sdk.cloud.google.com | bash

全部預設位置即可

重開 Terminal

exec -l $SHELL

初始化Google Cloud SDK

gcloud init

輸入預設project ID(不是數字那個)
接下來他會要求你clone default project,不需要,除非你想在本地端config

Step 2. Generate SSH Key

注意這邊需要切換 Google Cloud Platform 上 instance 的 root!

$ gcloud compute ssh [email protected]

這樣產生的key才能full access directory

Step 3. 在 FileZilla 新增 SSH Key

Edit->Settings or FileZilla->Settings,找 SFTP 頁面
選 Add keyfile
然後,因為預設產生的key位置在.ssh,是隱藏檔,要手動導向隱藏頁面
command-shift-G,輸入~/.ssh
選擇非public key
然後自己新增站台,帳號輸入root,免密碼,大功告成!

——————————參考文獻——————————
[1] Transferring files to your hosting server on Compute Engine – https://cloud.google.com/compute/docs/tutorials/transfer-files