Mysql
innodb_buffer_pool_size 沒有改變
我使用 MySQL 5.5.23-1~dotdeb.0 (Debian),這裡是 my.cnf 的相關部分
default-storage-engine = innodb innodb_buffer_pool_size = 3G innodb_log_file_size = 256M innodb_thread_concurrency = 8 innodb_flush_method = O_DIRECT innodb_file_per_table = 1 innodb_flush_log_at_trx_commit = 2 innodb_log_buffer_size = 4M innodb_additional_mem_pool_size = 20M
問題是,無論我為 innodb_buffer_pool_size 選擇什麼值(我也嘗試了 4G、8G 和 8000M)。我得到以下資訊
mysql> SHOW global VARIABLES;
| innodb_buffer_pool_size | 134217728
調整入門腳本的結果:
INNODB STATUS Current InnoDB index space = 621 M Current InnoDB data space = 3.82 G Current InnoDB buffer pool free = 0 % Current innodb_buffer_pool_size = 128 M Depending on how much space your innodb indexes take up it may be safe to increase this value to up to 2 / 3 of total system memory
感謝您提供解決此問題的提示。
好的,謝謝這個答案我發現我需要將配置放在裡面
$$ mysqld $$阻止 my.cnf 生效。 我的錯誤是我剛剛在 my.cnf 文件的末尾附加了命令。
然後在 mysql restart 我遇到
InnoDB: Error: log file ./ib_logfile0 is of different size 0 5242880 bytes
要解決此錯誤,我需要刪除日誌
rm -f /var/lib/mysql/ib_logfile
$$ 01 $$
並按照 Rolando 所說的重新開始。
免責聲明:不是 Debian 使用者
根據評論,我建議以下
cp /etc/mysql/my.cnf /etc/my.cnf cp /etc/mysql/my.cnf /usr/etc/my.cnf cp /etc/mysql/my.cnf /var/lib/mysql/my.cnf (or wherever datadir is)
如果在製作了這些 my.cnf 文件並重新啟動 mysql 之後,您仍然無法更改 innodb_buffer_pool_size,那麼我會懷疑 mysql 二進製文件 mysqld。它很可能是原始碼編譯的,並且可能具有 InnoDB 硬編碼的值。
要驗證 mysqld 是否經過原始碼編譯,請在 mysqld 啟動並執行時檢查作業系統的程序列表。如果你看到幾十個 mysqld 連接,很可能 mysqld 是原始碼編譯的。
從那裡,我建議解除安裝 mysql 並下載 RPM 或 tar installltion。然後,查看 my.cnf 是否響應。