Tag: MariaDB

MySQL / MariaDB 轉移到新主機

以下文章會介紹將 MySQL / MariaDB 轉移到新主機的方法, 在轉移前最好確定兩台主機安裝的 MySQL / MariaDB 版本相同, 這樣出問題的機會會較少。 要完整轉移 MySQL 伺服器, 包括所有 MySQL 資料庫、使用者帳號及權限到新主機, 只需將 MySQL 的資料目錄及 my.cnf 複製到新主機, 並設定權限即可, 複製資料到新主機可以用 Rsync 完成, 可以參考以下文章: rsync 透過 …

MySQL 連接時 localhost 及 127.0.0.1 的分別

在連接 MySQL 時, 雖然使用 localhost 或 127.0.0.1 都是連接到本機, 但連接的方式本質上是不同的。 連接 MySQL 時如果不加上 -h 參數, 會使用預設的 localhost 連接 MySQL, 而透過 localhost 連接 MySQL 是使用 Unix Socket (/var/lib/mysql/mysql.sock), 沒有使 TCP/IP, 所以沒有經過網路卡, …

RHEL / CentOS 安裝 MySQL 8.0

在 RHEL 及 CentOS 7 開始, 預設的資料庫系統是 MariaDB, 基本上 MariaDB 可以取代 MySQL, 但如果仍然想繼續用 MySQL 的話, 除了可以編譯 MySQL Community Server 的原始碼外, 也可以安裝 Oracle 提供的官方 YUM repository, 那便可以透過 Yum 安裝 MySQL …

為什麼要關閉 MySQL Query Cache

MySQL 的 Query Cache 在某些環境是有一定作用的,但大部份的情況都沒什麼作用,而且反而會影響效能。 當 MySQL 執行 SELECT 查詢時,會將結果放到 Query Cache 內,當下次執行相同的 SELECT 查詢時,不會在資料庫查詢結果,而會在 Query Cache 取得,從而提高執行效率。 這樣聽起來不錯,但實際上 Query Cache 的機制有一個問題,就是當資料表被更動後,儲存在 Query Cache 的 Cache 會失效,MySQL 會在背後將 Cache …

Python 安裝 MySQL 連接套件 – MySQLdb

系統預設的 Python 並沒有安裝 MySQLdb, 可以用以下方法確認,開啟文字模式,輸入以下指令: 如果看到 “ImportError: No module named MySQLdb” 即系統內沒有安裝 MySQLdb. 安裝 MySQLdb 首先安裝 pip 及更新到最新版本: $ apt-get install python-pip $ pip install -U pip 然後安裝需要的開發套件: $ …

MySQL / MariaDB 修改資料插入上限 max_allowed_packet

在 MySQL / MariaDB 插入資料時,每筆資料也會有限制,預設值是 16MB,其實這個 16MB 的限制已經很寬鬆,一般情況都會夠用,但如果將檔案 (例如圖片) 直接儲存在 MySQL 的話,便有可能出現錯誤,當用 inert 插入 或 update 更新的資料超過限制的話,會出現以下錯誤: Error 1153 – Got a packet bigger than ‘max_allowed_packet’ bytes 要解決這個問題可以修改 MySQL …

CentOS 7 安裝 phpMyAdmin

phpMyAdmin 是十分流行的 MySQL 資料庫管理系統,可以透過網頁介面管理 MySQL 資料庫,提供建立、編輯、刪除資料庫及資料表,也可以管理使用者及其權限。以下文章會介紹在 RHEL, CentOS 用 yum 安裝 phpMyAdmin 的方法。 在安裝 phpMyAdmin 前,需要先系統安裝好 Apache, PHP 及 MySQL (MariaDB),確定安裝好後便可以開始進行安裝。 1. 加入 EPEL Repository 在 CentOS 預設的 Repository …

重設 MySQL / MariaDB 忘記的 root 密碼

在安裝 MySQL 或 MariaDB 伺服器後, 當執行 mysql_secure_installation 後會完成一些基本的安全設定, 其中一項就是設定 root 的密碼。 如果在往後忘記了這個 MySQL root 密碼, 可以用以下方法重設, 以下文章會以 CentOS 環境作為例子. 首先將運行中的 MySQL Server 停止執行: # systemctl stop mariadb 或 # …

MySQL 刪除欄位內所有 \n 及 \r 字元

今天在一個系統上除錯, 發現用以下 SQL 指令找不到資料: 要用以下 SQL 指令才可以找到: 用 phpMyAdmin 檢查那些資料好像沒問題, 再細心找才發現有些資料的欄位結尾有 “\n” 或 “\r”, 出現這個問題的原因大欄是在插入資料時沒有刪除掉 “\n” 這類字元, 插入的部份很容易解決, 再來要將原有的資料內的 “\n” 及 “\r” 刪除。 在處理前先將資料表備份, 然後可以用以下 SQL 指令將所有 “\n” 及 …