Category: MySQL / Mariadb

移除 MySQL / MariaDB 帳號及權限

以下是 MySQL 及 MariaDB 在指令模式下刪除帳號及權限的方法。先用 root 登入 MySQL: /linux/mysql $ mysql -u root -p 登入後會看到 “mysql” 或 “MariaDB” 的提示符, 可以先用以下 SQL 語句檢視所有 MySQL 帳號: /linux/mysql/select-user mysql> SELECT User,Host FROM mysql.user; …

解決 MySQL 錯誤 – ERROR 1819 (HY000)

MySQL 5.7 為了增加系統安全性, 加入了 validate_password plugin, 可以自定 MySQL 使用者帳號密碼的強度, 當建立 MySQL 帳號或者修改密碼時, 密碼強度不符合要求, 會出現以下錯誤:ERROR 1819 (HY000): Your password does not satisfy the current policy requirements.解決方法是設定一組比較複雜的密碼, 以符合 MySQL 的要求, 如果要檢視目前的密碼要求, 或者修改這個限制, …

MySQL / MariaDB 重新命名資料庫

以前 MySQL 的 “RENAME DATABASE” 指令, 已經在 5.1.23 後的版本刪除, 原因是重新命名資料庫時存在資料遺失的風險。以下示範用 “RENAME TABLE” 指令及 mysqldump 指令, 替資料庫重新命名的方法:RENAME TABLE這個方法適合資料庫比較大的情況, 但缺點是需要對每個資料表逐一執行。先建立一個空白的資料庫, 名稱用要變更的資料庫名稱, 以下假設舊資料庫是 oldname; 新資料庫是 newname: 然後把資料表逐一用 RENAME 指令從 oldname 搬到 newname: …

MySQL / MariaDB 轉移到新主機

以下文章會介紹將 MySQL / MariaDB 轉移到新主機的方法, 在轉移前最好確定兩台主機安裝的 MySQL / MariaDB 版本相同, 這樣出問題的機會會較少。要完整轉移 MySQL 伺服器, 包括所有 MySQL 資料庫、使用者帳號及權限到新主機, 只需將 MySQL 的資料目錄及 my.cnf 複製到新主機, 並設定權限即可, 複製資料到新主機可以用 Rsync 完成, 可以參考以下文章:rsync 透過 SSH 傳送及備份檔案 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, 所以沒有經過網路卡, 不會受防火牆的限制。而如果透過 127.0.0.1 …

RHEL / CentOS 安裝 MySQL 8.0

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

為什麼要關閉 MySQL Query Cache

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