Category: MySQL
好文分享: 10 MySQL settings to tune after installation 在 PERCONA MYSQL PERFORMANCE BLOG 看到這篇文章, 覺得很不錯, 其中在文章開始時作者提到一些建議很實用。 — Change one setting at a time! This is the only way to …
MariaDB 10.0.x 版是以 MariaDB 5.5 為基礎, 加上移植自 MySQL 5.6 版的功能和自行開發的新功能。以下會介紹在 RHEL 及 CentOS 用 YUM 安裝 MariaDB 10.0 的方法。 首先建立 MariaDB 的 YUM Repository, 建立檔案 /etc/yum.repos.d/MariaDB.repo, 根據不同的系統加不相關內容: RHEL / …
MySQL 熱備份時如果沒有停止 MySQL 或者變成唯讀狀態, 備份檔有機會出現不連貫的問題。而 Percona XtraBackup 就是一個可以在 MySQL 不停機的情況下對進行熱備份的開源工具, 而且可以選擇完整備份或者增量備份。除了 MySQL 外, 它也支援 MariaDB 及 Percona Server。 由於 Percona XtraBackup 是借用 transaction log 進行備份, 所以熱備份只適用於 InnoDB 的資料庫, 如果資料庫使用 …
MySQL 的 Master-Slave Replication (同步) 是當 Master 資料庫有變動時, 自動同步到 Slave 資料庫。由於 MariaDB 在 RHEL/CentOS 7 開始已經成為預設資料庫, 而且可以完全取代 MySQL, 所以以下也會以 MariaDB 進行設定, 但同樣方法在 MySQL 一樣可以的。 假設已經有兩台 MySQL 伺服器, 以下兩部份分別是 Master …
當用 mysqldump 備份 MySQL 或 MariaDB 資料庫時, 如果出現類似以下報錯: mysqldump: Got error: 145: Table ‘’ is marked as crashed and should be repaired when using LOCK TABLES 出現這個錯誤, 是資料表出現損壞, 可以嘗試用 …
有時在 MySQL 新增資料時, 會先判斷資料是否存在, 如果資料不存在會執行 INSERT 語句, 如果資料存在則用 UPDATE 語句。以前要這樣做, 需要先用 SELECT 判斷, 就像這樣: 雖然可以完成上面提到的任務, 但寫程式時就會較麻煩, MySQL 提供了 INSERT … ON DUPLICATE KEY UPDATE 語句, 可以一行就完成, 無需用 IF 及 …
有時需要在不同 MySQL 版本間做測試, 如果要在伺服器內重啟 MySQL 切換版本做測試會很麻煩, 以下紀錄一下在伺服器內安裝兩個 MySQL 同時運行, 當然如果有需要, 也可以按此方法安裝 2 個以上的 MySQL。 以下假設第一個 MySQL Server 已經正常運作, 下面全是安裝第二個 MySQL Server 的步驟: 1. 建立 MySQL 資料庫目錄: # mkdir /var/lib/mysql2 …
MySQL 的預設埠號是 3306, 要變更埠號可以有很多原因, 例如基於安全考量或者同時安全兩個 MySQL Server 等, 以下是變更埠號的方法: 1. 開啟 my.cnf 檔案, Redhat 及 CentOS 開 /etc/my.cnf, Debian 放在 /etc/mysql/my.cnf。 加入以下這行到 段落, 如果已經有 port 的選項, 直接修改便可以, 下面會將埠號改為 3307: …
MySQL 資料庫出現重複資料時, 找出重複資料的方法有很多, 以下介紹兩種常用的方法: 找出重複的紀錄, 以 cid 欄位作為判斷, 會輸出 cutomer_id 及出現次數: SELECT cid, COUNT(*) FROM customer GROUP BY cid HAVING COUNT(*) > 1 不是顯示出現次數, 而是將重複的資料全部輸出: select * from customer …
這個 Perl Script 使用 mysqldump 備份 MySQL, 可以放到 crontab 自動執行。 程式需要按需要修改, 以下是需要修改的選項: $db_username: mysql 使用者名稱 $db_password: mysql 密碼 $db_host: mysql server 位置 $mysqldump: mysqldump 位置 $backup_dir: 儲存備份檔的目錄 $rotate: 保留備份數量 …