Tag: Percona

MySQL 換算 Unix Timestamp 日期時間

在多時寫程式都會用 Unix Timestamp 儲存時間,好處是可以很簡單作日期計算,以及用不同格式顯示日期。 以前儲存在 MySQL 的日期時間,會擷取後用 PHP 的 date() 函式顯示,但 MySQL 已經內置了用作換算 Unix Timestamp 的功能,用起來很方便,以下記錄一下用法。 UNIX_TIMESTAMP() — 取得目錄 Unix Timestamp: 以前習慣在 PHP 用 time() 函式插入 Unix Timestamp 到 …

同時安裝 MySQL 及 MariaDB

MariaDB 是 MySQL 的替代產品, 也是 RHEL 7 及 CentOS 7 的預設資料庫系統。有時需要在 MariaDB 及 MySQL 之間做測試, 或者在不同版本 MySQL 之間做測試, 同時安裝及運行 MariaDB 及 MySQL 會很方便, 以下紀錄一下在主機內同時安裝 MariaDB 及 MySQL 運行, 當然如果有需要, 也可以按此方法安裝 …

MySQL 檢查欄位是否 NULL 或空白

有時需要在 MySQL 資料庫內,檢查欄位的值是否 NULL,這個可以使用 MySQL 內建檢查 NULL 的功能,分別是 “IS NULL” 及 “IS NOT NULL”, 以下是用法: select 資料表 table_name,欄位 col_name 是 NULL 的紀錄: select 資料表 table_name,欄位 col_name 不是 NULL 的記錄: …

Shell Script 連接 MySQL 安全寫法

在 Shell Script 連接 MySQL, 可以用以下語句實現: $ mysql -u db_user -pdb_password db_name -e ‘sql_query’ 如果系統內沒有其他使用者,這個方法沒什麼問題,但如果系統有其他使用者,在執行 Shell Script 時,其他使用者便可以用 ps 這類指令,看到正在連接 MySQL 的使用者名稱及密碼。 較安全的方法是將 MySQL 使用者名稱及密碼儲存到家目錄的 .my.cnf 檔案,那便不用在 Shell Script 輸入 …

安裝 MySQL 後的優化

以下是安裝 MySQL 後可以嘗試的優化項目,建議逐樣項目修改,以檢視每個項目的優化成效,而大部份的設定可以在運行中 MySQL 設定,不用重新啟動 MySQL。 innodb_buffer_pool_size: 這個設定是 innodb 儲存引擎資料庫,所使用的資料及索引快取,根據記憶體的大小䀆量設定大一點,可以減低讀取資料時從硬碟讀取的次數。如果是獨立的 MySQL 伺服器,可以這樣設定: 系統 8GB 記憶體: 5GB – 6GB 系統 32GB 記憶體: 20GB – 25GB 系統 128GB 記憶體: 100GB – 120GB …

MySQL 錯誤: Another MySQL daemon already running with the same unix socket

如果 MySQL 沒有正常關閉,例如強制關機或斷電等,重新啟動時可能會出現以下錯誤: Another MySQL daemon already running with the same unix socket 要解決這個問題,只要將 MySQL 的 mysql.sock 刪除或重新命名即可。mysql.sock 檔案預設會在 MySQL 資料目錄下,如果不在那裡,可以查看 my.cnf,可能將 mysql.sock 設定到其他位置。 以 Redhat 及 CentOS 為例,預設在 /var/lib/mysql/mysql.sock,解決方法如下: …

取回 MySQL 5.7 預設 Root 密碼

以前 MySQL 安裝後預設 root 密碼是空白, 為了增加安全性, 由 MySQL 5.7 開始, MySQL 在安裝時會自動建立一個 root 密碼, 需要修改才可以正常使用。 要找回這個 MySQL 建立的 root 密碼, 可以開啟 MySQL 的 error log, 在 Redhat 及 CentOS 取回密碼的方法: …

MySQL 效能監控工具 — Mytop

Mytop 是一個指令模式的 MySQL 監控工具, Mytop 已經內建在 Fedora Repository, Fedora 可以略過以下步驟直接用 yum 安裝。 如果是 RHEL 或者 CentOS, 需要先啟用 RPMForge Repository, 根據不同的發行版安裝相應的 RPM: RHEL, CentOS 7 64-Bits: RHEL, CentOS 6 32-Bits: …

解決 MySQL 連接出現 Too many connections

當連接到 MySQL 時出 Too many connections, 整個錯誤訊息是這樣的: 出現 Too many connections 表示連接到 MySQL 的連線數超出了 MySQL 的連線數上限, 預設上限是 100. 假設程式方面沒有問題, 這個問題可以通過提高 MySQL 連線數上限 (max_connections 變數) 得以解決, 設定 MySQL 的 max_connections …