FAQ-MySQL Admin

    版本為 21:25, 20 Nov 2024

    到這個版本。

    返回到 版本存檔.

    查閱目前版本

    MySQL 資料庫管理問與答。

    Q: 目錄 /var/lib/mysql 有大量的的mysql-bin.00001.....磁碟空間佔滿

    Ans: mysql-bin 是 transaction log,用於資料庫同步或資料回復時使用,預設是一個檔案約 1GB,解決方式如下:

    service mysqld stop
    vi /etc/my.cnf 
    

    /etc/my.cnf:找到 log-bin=mysql-bin 增加這兩行

    # added by alang
    expire_logs_days        = 10
    max_binlog_size         = 100M
    

    啟動 mysql

    service mysqld start
    

    另一種方法

    5.2 MySQL Server Logs :: 5.2.3 The Binary Log
    12.5.1 SQL Statements for Controlling Master Servers :: 12.5.1.1 PURGE BINARY LOGS Syntax

    系統目錄 /var/lib/mysql 底下有很多 mysql-bin.xxxxxxx 的檔案,這些是 MySQL 的 binary log,假設系統並沒有作 replication,而且確定不需要保留這些 transaction log,下列指示可以清除它們:

    // 檢查 log 功能開啟

    mysql> show variables like '%log%';
    名稱為 log_bin

    // 檢查 log 檔

    mysql> show binary logs;
    編號愈大的表示 log 愈新

    // 刪除編號 mysql-bin.000011 以前但不包含 mysql-bin.000011 的所有 binary log files

    mysql> purge binary logs to 'mysql-bin.000011';
    指令結束後,記得在執行一次 show binary logs 檢查看看。

    Q: mysqldump: Got error: 145: Table './.../wp_useronline' is marked as crashed and should be repaired when using LOCK TABLES

    Ans: 這是因為資料庫可能曾經意外中斷服務所造成,執行修復指令如下:

    mysqlcheck -u<db_username> -p --auto-repair --databases <db_name>
    

    若有多個 Table 損壞,可能要執行多次,直到每一個 Table 顯示 ok。

    Q: 錯誤訊息:Error: 1030 - Got error 28 from storage engine

    Ans: 執行指令 perror 分析錯誤發生原因

    #perror 28
    OS error code  28:  No space left on device
    

    原來是資料庫的儲存空間不足所造成。

    // 列出目前資料庫所有連線

    #mysqladmin -u root -p processlist
    Powered by MindTouch Core