Tag: MariaDB

查詢已安裝的 MySQL / MariaDB 版本

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

MySQL / MariaDB 移除使用者帳號及權限

當 MySQL / MariaDB 伺服器開啟了多個帳號給不同網站使用, 有需要將當中的特定帳號移除, 除了登入 phpMyAdmin 操作外, 也可以用 MySQL 指令完成, 以下是 MySQL 及 MariaDB 移除使用者帳號的方法。首先登入到 MySQL: # mysql -u root -p 登入 MySQL 後, 可以先列出所有使用者帳號, 以確定要刪除的帳號:看到要移除的帳號後, 以下假設要移除的帳號是 ‘dbuser’@’localhost’.查看 …

MySQL 限制每個使用者最大連線數

MySQL 的 max_connections 可以設定 MySQL 伺服器的最大連線數,但 max_connections 是針對整台 MySQL 伺服器,如果某一個 MySQL 帳號使用過多連線數,可以用以下方法限制每個使用者最大連線數,限止因為個別高用量使用者拖累其他使用者。另一個設定參數是 max_user_connections,就可以設定每個使用者的連線數量限制, 以避免一個使用者的用量過高而影響整台 MySQL 伺服器的運作。一般上可以將 max_user_connections 設定成 max_connections 的一半數值, 例如 max_connections 是 1000, max_user_connections 可以設定成 500, 設定方法先開啟 my.cnf: # …

提高 MySQL 的 open files limit

對於中高用量的 MySQL 伺服器, 提高 max_connections 是必然的設定, 不然便會出現 too many connections 錯誤。但 max_connections 這個數值不可以任意提高的, 如果設定太高, 會出以類似以下的錯誤: Changed limits: max_open_files: 1024 max_connections: 214 table_cache: 256 例如設定 max_connections 到 1000, 系統出現上面 Warning …

MySQL 管理相關指令

以下是一些常用的 MySQL 管理相關指令匯整, 以下的指令如果以 # 字符開頭, 代表是在 CLI 輸入的指令, 如果是以 “mysql>” 開始, 則表示登入 MySQL 後輸入的指令。登入 MySQL: 建立資料庫: 匯入資料庫: (將 /path/to/backup.sql 匯入到 database_name 資料庫) 匯出資料庫: (將 database_name 資料庫匯出到 /path/to/backup.sql) 刪除資料庫: 新增使用者: …

MySQL 修改使用者密碼

修改 MySQL 密碼可以透過 mysql 指令 (在 Windows 下是 mysql.exe),mysqladmin 指令或 phpMyAdmin 完成,以下是用 mysql 及 mysqladmin 修改 MySQL 使用者密碼的方法。mysql 指令 在指令模式用 root 帳號透過 mysql 登入 MySQL 伺服器: # mysql -u root …

MySQL Log 記錄檔位置

MySQL 和 MariaDB 的 Log 記錄檔預設儲存在資料庫目錄, Redhat 及 Debian 系發行版的資料庫目錄都是在 /var/log/mysql/ 目錄。如果在資料庫沒有找到, 可以查看 /etc/my.cnf 裡面的 log-error 一行, 這裡可以自訂 Log 記錄檔的位置, 例如在 CentOS 7 的 MariaDB 是這樣:知道 Log 記錄檔的位置後, 可以用以下指令檢視 Log …

MySQL 開啟 innodb_file_per_table 及轉換現有資料表

MySQL 會將 InnoDB 的資料表內的資料及索引全部儲存到共享空間, 即是所有 InnoDB 資料表的資料全都放到 ibdata1 檔案內。而 innodb_file_per_table 就可以設定每個資料表, 使用獨立表空間儲存資料, 即是每個資料表有屬於自己的 .ibd 檔案。這樣做的好處是對日後的管理較容易, 在 MySQL 5.6.6 開始, innodb_file_per_table 預設是開啟, 而在 5.6.6 前的版本預設是關閉的, 要查詢目前 MySQL 的 innodb_file_per_table 是否開啟, 可以查看 …

列出所有 MySQL 資料庫大小

當發現 MySQL / MariaDB 伺服器的硬碟使用空間越來越多, 想找出那一個資料庫佔用最多空間時, 以前用 MyISAM 儲存引擎時, 可以直接用 du 指令查看資料庫目錄。但如果是用 InnoDB 的話, 用 du 指令就沒有用了。要找出所有 MySQL 資料庫的空間大小, 可以用 MySQL 的 root 帳號登入 MySQL CLI 或 PHPMyAdmin, 然後執行以下 SQL …