搜尋問答服務(Search QA services)

2016-07-11

解決 MySQL 資料庫所在硬碟空間不足的狀況

MySQL 資料庫所在硬碟 C 槽空間吃緊,即將發生硬碟空間不足的問題。利用 symbolic link (符號連結) 將部分資料庫改成使用其他硬碟 (或硬碟分區),以解決問題。



解決方式:
  1. 確認 MySQL 已經啟用 InnoDB File-Per-Table Tablespaces
  2. 資料庫規劃 
    • (1) 需要時常使用的資料庫名稱 hot 放在原硬碟 C 槽,資料庫檔案放在 c:\MySQL5.6\data\hot
    • (2) 不常使用的資料庫名稱 archive 放在另一硬碟 D 槽,資料庫檔案放在 d:\database_archive\
  3. 建立各自資料庫 hot, archive
  4. 將 c:\MySQL5.6\data\archive\db.opt 複製到 d:\database_archive\db.opt 。該檔案放置資料庫的字元集與校對 (collation) 設定。
  5. 刪除資料庫 archive
  6. 以管理員身份開啟命令提示字元,建立 symbolic link:
    C:\Windows\system32>mklink /d c:\MySQL5.6\data\archive D:\database_archive
  7. 重新載入資料庫清單,可以發現剛剛刪除的資料庫 archive 復活
  8. 將不常用的資料表從資料庫 hot 移動到資料庫 archive ex:
    RENAME TABLE `hot`.`table_name` TO `archive`.`new_table_name`
移動檔案到另一硬碟 D 槽,就可以解除 C 槽硬碟空間不足的問題。


參考資料:
  1. MySQL :: Using Symbolic Links / Using Symbolic Links for Databases on Windows
  2. Mklink 微軟文件,該命令僅支援 Windows Vista, Windows Server 2008, Windows Server 2012, Windows 8 作業系統
  3. 使用Symbolic Links以支持数据分区存储
  4. MySQL 超新手入門(7)字元集與資料庫 by Michael | CodeData
  5. MySQL :: RENAME TABLE Syntax

圖片素材:

2016-06-23

解決 Mac 預覽程式看不到 PDF 檔的圖片

問題狀況:
使用 Mac 內建的 預覽程式 app 觀看 PDF 檔時,發現有圖片沒有顯示。



解決方式:
  1. 先將 Google Chrome 瀏覽器 更新到最新版。再將 PDF 檔拉到 Chrome 瀏覽器,改用 Chrome 內建的 PDF 閱讀器即可解決。
  2. 或者安裝別的 PDF 閱讀軟體,例如: Adobe Acrobat Reader DC 、Foxit Reader 都可以順利看到。

相關資料:
圖片素材:

2016-06-16

解決 Gephi (v 0.8.2) 啟動時遇到黑畫面

問題狀況: 因為電腦硬碟正在忙碌, Gephi (v 0.8.2) 啟動時遇到黑畫面。想要關閉再重新啟動 Gephi ,卻遇到無法直接關閉的狀況。使用 Process Explorer 關閉 javaw.exe ,再重新啟動 Gephi 即可解決。


解決方式:
  1. 關閉造成電腦硬碟忙碌的軟體
  2. 安裝和執行 Process Explorer
  3. 找到 javaw.exe
  4. 點選兩下確認裡面屬性有 Gephi
  5. 點選 Kill process 按鈕
  6. 重開 Gephi

相關資料

2016-05-11

解決 WampServer 下載 gz 壓縮檔會解壓縮失敗

下載 WampServer 網站伺服器的 gz 壓縮檔,卻發現壓縮檔解壓縮失敗。啟用網站伺服器的檔案續傳模組即可解決。



問題狀況:

利用 Orbit downloader 下載檔案時,發現伺服器並沒有支援檔案續傳。下載的壓縮檔除了解壓縮失敗,利用 WinMD5 檢查下載前後的檔案 MD5 檢查碼並不一致,代表是兩個不同檔案。


解決方式:

WampServer 管理選單,選擇啟用 headers_module 模組即可啟用檔案續傳。下載的多個 gz 壓縮檔,利用 7-Zip 測試壓縮檔 ok,也可以順利解壓縮。


版本資訊:

  • WampServer 版本: 2.5
  • Apache 版本: 2.4.9


其他嘗試:
將 gzip 再壓縮成 zip 檔,重新下載。解壓縮仍然失敗。
將 gzip 直接解壓縮,重新下載檔案。下載前後的檔案 MD5 檢查碼是一致。因為檔案太多,所以不採取這個方式。

參考資料
網頁素材

2016-04-17

解決 Google 文件外掛程式 Code Pretty 的 Service invoked too many times in a short time 訊息

Google 文件外掛程式 Code Pretty 可以美化文件內的程式碼樣式。選取程式碼後,再點選 Code Pretty 卻出現「Service invoked too many times in a short time: properties. Try Utilities.sleep(1000) between calls.」錯誤訊息。



錯誤訊息截圖

點選錯誤訊息的「詳細資料」連結,卻顯示跟錯誤訊息一模一樣的內容 XD



解決方式

因為選取太長程式碼想要美化,而出現這樣的錯誤。只要將選取的文字縮短,就不會出現這樣的訊息。實際測試,可以選取的文字長度小於三頁。


相關連結



2016-03-23

解決 Apple ID 一直無法登入 App Store 的問題

Apple ID 和密碼雖然是正確的,但是卻一直無法登入 App Store。更新 Mac 作業系統,再重新登入即可。

問題: 拿到新的 MacBook Pro,註冊了新的 Apple ID。可以登入 iCloud , 代表 Apple ID 帳號密碼沒有錯誤。但是卻無法登入 App Store,一直看到轉圈圈,過了很久幾分鐘後還是無法登入。



解決方法: 
1. 點選最上方左側的蘋果圖示。


2. 點選「關於這台 Mac」

3. 點選「軟體更新」,不需要登入 Apple ID ,即可更新作業系統。

(備註: 更新前不是 EI Capitan 版本)

4. 下載更新,大概需要幾十分鐘。重新啟動 Mac 電腦與更新後,就可以順利登入 App Store。


參考資料:




2016-02-06

解決 Navicat 「存放裝置空間不足,無法完成此操作」問題訊息

問題: 匯出資料庫查詢結果為 Excel 檔案時,Navicat 顯示「[Rows xxx][Exp] 存放裝置空間不足,無法完成此操作」問題訊息。該問題會導致匯出的結果筆數有少。


了解問題:

目前發現可能兩種原因會造成這個問題,由於沒有看到相關說明文件,如果發現有漏掉,還請在文章下方留言。

發現問題原因主要來自微軟 Excel 的規格及限制 中儲存格的兩個限制 「(1) 一個儲存格可以包含的字元總數: 32,767 個字元、(2) 公式內容的長度:  8,192 個字元」。字元的英文是 characters,每一個中文字或英文字,都算是一個字元。

為了確認資料是不是超過 Excel 儲存格限制,先利用 MySQL CHAR_LENGTH() 函數,了解欄位的字元數,範例 SQL 語法:
SELECT CHAR_LENGTH(`string_column`) FROM `table` ORDER BY
CHAR_LENGTH(`string_column`) DESC 
另外錯誤訊息的 [Rows xxx] 也提示了出問題是資料列中的第 xxx 行。如果要在 Excel 計算字元長度,請用 LEN 函數

解決方式:

限制 (1) 一個儲存格可以包含的字元總數: 32,767 個字元。
利用 MySQL SUBSTRING() 函數將超過 32,767 個字元的文字刪除,範例 SQL 語法:
SELECT SUBSTRING(`string_column`, 1, 32767) FROM `table`
限制 (2) 公式內容的長度: 8,192 個字元
實際資料測試,如果欄位內容是以等號 (=) 或減號 (-) 開頭,都會被視作公式。將欄位內容的第一個字前面插入單引號,將誤判為公式的文字內容轉換成字串。利用 MySQL CONCAT() 函數加入單引號,範例 SQL 語法:
SELECT CONCAT('\'', `string_column`) FROM `table`
加入判斷第一個字是不是以等號 (=) 或減號 (-) 開頭,改寫 SQL 語法:
SELECT IF(LEFT(`string_column`, 1) = '-' OR LEFT(`string_column`, 1) = '=', CONCAT('\'', `string_column`), `string_column`) FROM `table`

將上方兩個範例 SQL 語法整合:
SELECT SUBSTRING(IF(LEFT(`string_column`, 1) = '-' OR LEFT(`string_column`, 1) = '=', CONCAT('\'', `string_column`), `string_column`), 1, 32767) FROM `table`

 完成!


沒有作用的解決方法:

  • 原以為是硬碟空間不足,造成「存放裝置空間不足,無法完成此操作」錯誤,但是實際上硬碟空間仍然足夠。


參考資料:
  1. Excel 的規格及限制
  2. MySQL SUBSTRING() function - w3resource
  3. MySQL CONCAT() function - w3resource
  4. How to troubleshoot errors when you save Excel workbooks
  5. 資料表 - Navicat Wiki
圖片素材:



Related Posts with Thumbnails

網誌存檔(blog archive)