如何在 Windows 上調查 MySQL 崩潰?
我在 Windows Server 2008 R2 上執行 MySQL 5.6.19。
我有 3 台伺服器 A、B、C 伺服器 A 是獨立伺服器。該伺服器具有無法放置在伺服器 B 上的數據(即使用者資訊。)
伺服器 B 是另一台獨立伺服器,其數據無法保存在伺服器 A 上。伺服器 B 是伺服器 C 的主伺服器。伺服器 C 是另一台獨立報告伺服器,它是伺服器 B 的從屬伺服器。
在使用將 FEDERATED 表添加到伺服器 B 之後。我將伺服器 C“從屬”重新同步到伺服器 B“它是主”。
但是現在除非我添加 –skip-slave-start 選項,否則伺服器 C 將無法啟動。
此外,每當我
START SLAVE;
在伺服器 C 上發出命令時,該伺服器立即停止工作(崩潰。)複製發生了一些事情。我必須說在我添加 FEDERATED 表之前複製工作正常,沒有問題。(**重要說明:**複製執行時我沒有發出任何 create table engine=FEDERATED。我首先在主伺服器(伺服器 B)上創建了所有 FEDERATED 表,然後我創建了伺服器備份並將其恢復到從伺服器(伺服器 C )。
試圖找出導致這次崩潰的原因。我已添加
core-file
到文件my.ini
中以使 MySQL 生成core.pid
文件,但沒有創建任何內容。我嘗試添加
core-file-size=1GB
,但這導致由於未知變數而根本無法啟動!(也許它不被 Windows 辨識。)我可以做些什麼來調查 Windows 2008 R2 上的這種無聲崩潰?
謝謝
我想出了一個解決辦法。
我通過命令行執行 MySQL
log-error=....
我從 my.ini 文件中禁用了這一行。我停止了 MySQL 服務。然後我打開一個命令行並執行它
mysqld.exe --defaults-file="C:\ProgramData\MySQL\MySQL Server 5.6\my.ini" --console
這表明我遇到了 MySQL 的錯誤
MySQL 中有一個錯誤,如果您使用聯合表,則每次執行刷新表時 MySQL 都會崩潰。這也可能與您的問題有關,因為它是使用聯合引擎時的具體問題。
https://bugs.mysql.com/bug.php?id=47525
有一個名為 flush_time 的 MySQL 設置,它在 Windows 上預設為 1800(30 分鐘)。這會導致 mysql 每 30 分鐘崩潰一次。由於此設置僅推薦用於資源低的盒子,只要你有一個相當不錯的盒子,解決方案是在 my.ini 中設置 flush_time = 0。
在 ’nix 框上,這個值已經預設為 0,所以這只是一個 Windows 問題。