Author: Sam Tang

Ubuntu 安裝 PHP 7.0 及 PHP 7.1

目前 PHP 最近版本是 7.1, 以下文會介紹透過 ondrej/php 的 PPA 安裝 PHP 7.0 及 7.1 的方法, 以下方法適用於 Ubuntu 16.10, 16.04 及 14.04.首先執行以下指令加入 ondrej/php 的 PPA: $ sudo apt-get install python-software-properties $ sudo …

修復錯誤刪除 InnoDB ibdata 檔案資料

當錯誤刪除了 MySQL 的 InnoDB 資料庫檔案 ibdata 及 ib_logfile, 如果 MySQL 伺服器仍在執行狀態, 而且資料可以照常寫入, 切記不要關閉 MySQL 伺服器或 kill 掉 mysqld, 這時還可以將 InnoDB 資料庫修復的, 以下記錄修復的步驟, 如果要測試, 切記在測試環境進行, 切勿在生產環境測試:1. 先找出 mysqld 的 pid, 可以用 …

Ubuntu Linux 掛載 Windows 10 分割區

如果在一台電腦同時安裝 Linux 及 Windows 10 / Windows 8, 在 Windows 下重新開機進入 Linux 時, 掛載 Windows 的系統分割區 (即 Windows 的 C:) 沒有問題, 但當在關機後進入 Linux, 掛載 Windows 系統分割區會出現錯誤:Windows is not fully shutdown原因是 …

MySQL – DELETE, TRUNCATE 及 DROP 的分別

在 MySQL 要刪除資料可以用 DELETE 指令, 而清空資料表可以用 TRUNCATE, 刪除資料表則可以用 DROP TABLE, 以下會介紹這三個 MySQL 指令的分別。TRUNCATEMySQL 的 TRUNCATE 是用作清空資料表, auto_increment 的數值也會重設, 清空後的資料表就如同剛建立一樣, 因為 TRUNCATE 的做法是先 DROP 掉資料表, 再用 CREATE 指令重新建立資料表, 刪除所有資料的執行效率比 DELETE 高, …

把 crontab 執行指令輸出寫入記錄檔

一般上在 crontab 自動執行的指令, 會將所有指令標準輸出及錯誤放到 /dev/null, 這便會略過所有指令的輸出, 例如用 crontab 執行 /root/my-script.sh, 一般上語法是這樣寫: * * * * * /root/my-script.sh > /dev/null 但有時需要將執行指令的輸出儲存下來, 只要將 /dev/null 換成記錄檔的位置即可, 例如想把指令的輸出放到 /var/log/mycrontab.log, 可以這樣寫: * * * * …

MySQL InnoDB 刪除資料後釋放硬盤空間

MySQL 使用 InnoDB 時,當資料表用 DELETE FROM 刪除資料後,硬碟空間並不會立即釋放,因為 MySQL 只對已刪除的資料標記為刪除,並沒有真正刪除資料,這會導致 InnoDB 的檔案不斷擴大。只有在 DROP TABLE 及 TRUNCATE TABLE 時才會釋放空間。如果沒有開啟 innodb_file_per_table,所有 InnoDB 的資料都會儲存在 ibdata 檔案內,對於資料庫的體積很大的 MySQL Server,要釋放硬碟空間會很痛苦,因為只有將 MySQL 資料庫導出,再重新將備份還原才可以釋放空間。如果 innodb_file_per_table 有開啟,每個 InnoDB 資料表都會有獨立的檔案,可以較簡單地釋放硬碟空間, …

查詢已安裝的 MySQL / MariaDB 版本

由於各個 MySQL 的版本都略有不同,而且又有 MaridDB 或 Percona 等分支版本, 很多時系統管理員都需要查詢系統內的 MySQL 版本,要查詢系統內的 MySQL 版本,以下列出幾種查詢 MySQL 版本的方法。CLI在 CLI 查詢 MySQL 版本十分簡單,用 mysql 指令便可以, 而且不用登入 MySQL: $ mysql -V 執行後會輸出 MySQL 的版本, 以下是在 CentOS …

解決 nslookup, dig , host Command Not Found

nslookup, dig 及 host 這三個指令是 DNS 查詢工具, 對 DNS 除錯很實用, 原因是系統沒有安裝以上工具的套件, 執行以上指令會出現 Command Not Found:nslookup :command not founddig :command not foundhost:command not found只要安裝相關的套件包即可解決問題, RHEL 及 CentOS 安裝 bind-utils; Debian 及 …

防止 SSH 連線逾時斷線

如果發現 SSH 閒置幾分鐘後, 因為基於安全理由, SSH 會自動斷線。但如果在測試或者正在安裝的新伺服器, 這樣也會很麻煩, 這個問題可以透過修改 SSH 客戶端或者 SSH 伺服器的設定解決。SSH 客戶端在 Linux 下的 SSH 客戶端, 開啟家目錄的 SSH 設定檔: $ vi ~/.ssh/config 加入以下兩行:要留意第二行開始的位置, 必須像上面一樣加上空格, 然後執行以下指令載入設定: $ sudo source ~/.ssh/config …

查詢已安裝的 PHP 版本

由於 PHP 各版本的寫法都略有不同,很多時都需要查詢系統內的 PHP 版本,或者系統管理員也有時會需要檢查 PHP 版本,要查詢系統內的 PHP,分別可以用 PHP 程式或者 CLI 指令模式完成,以下分別看一看幾種不同方法。CLI在 CLI 查詢 PHP 版本十分簡單,用 php 指令便可以: $ php –version 或 $ php-cgi –version 執行後會有類似的輸出: PHP 5.4.16 (cli) (built: …