Mysql

我的 MySQL 在一個月內崩潰了很多次

  • April 10, 2022

我的網站(Wordpress)有時停止使用以下錯誤消息“

無法連接到數據表

我檢查了 MySQL 的日誌文件,發現崩潰資訊如下:

---------- 
2021-01-21  0:44:59 0 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
2021-01-21  0:44:59 0 [Note] InnoDB: Uses event mutexes
2021-01-21  0:44:59 0 [Note] InnoDB: Compressed tables use zlib 1.2.11
2021-01-21  0:44:59 0 [Note] InnoDB: Number of pools: 1
2021-01-21  0:45:00 0 [Note] InnoDB: Using SSE2 crc32 instructions
2021-01-21  0:45:00 0 [Note] InnoDB: Initializing buffer pool, total size = 16M, instances = 1, chunk size = 16M
2021-01-21  0:45:00 0 [Note] InnoDB: Completed initialization of buffer pool
2021-01-21  0:45:00 0 [Note] InnoDB: If the mysqld execution user is authorized, page cleaner thread priority can be changed. See the man page of setpriority().
2021-01-21  0:45:00 0 [Note] InnoDB: Starting crash recovery from checkpoint LSN=215993122
2021-01-21  0:45:07 0 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
2021-01-21  0:45:07 0 [Note] InnoDB: Uses event mutexes
2021-01-21  0:45:07 0 [Note] InnoDB: Compressed tables use zlib 1.2.11
2021-01-21  0:45:07 0 [Note] InnoDB: Number of pools: 1
2021-01-21  0:45:07 0 [Note] InnoDB: Using SSE2 crc32 instructions
2021-01-21  0:45:07 0 [Note] InnoDB: Initializing buffer pool, total size = 16M, instances = 1, chunk size = 16M
2021-01-21  0:45:07 0 [Note] InnoDB: Completed initialization of buffer pool
2021-01-21  0:45:07 0 [Note] InnoDB: If the mysqld execution user is authorized, page cleaner thread priority can be changed. See the man page of setpriority().
2021-01-21  0:45:07 0 [Note] InnoDB: Starting crash recovery from checkpoint LSN=215993122
2021-01-21  0:50:02 0 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
2021-01-21  0:50:02 0 [Note] InnoDB: Uses event mutexes
2021-01-21  0:50:02 0 [Note] InnoDB: Compressed tables use zlib 1.2.11
2021-01-21  0:50:02 0 [Note] InnoDB: Number of pools: 1
2021-01-21  0:50:02 0 [Note] InnoDB: Using SSE2 crc32 instructions
2021-01-21  0:50:02 0 [Note] InnoDB: Initializing buffer pool, total size = 16M, instances = 1, chunk size = 16M
2021-01-21  0:50:02 0 [Note] InnoDB: Completed initialization of buffer pool
2021-01-21  0:50:02 0 [Note] InnoDB: If the mysqld execution user is authorized, page cleaner thread priority can be changed. See the man page of setpriority().
2021-01-21  0:50:02 0 [Note] InnoDB: Starting crash recovery from checkpoint LSN=215993122
2021-01-21  0:50:02 0 [Note] InnoDB: 128 out of 128 rollback segments are active.
2021-01-21  0:50:02 0 [Note] InnoDB: Removed temporary tablespace data file: "ibtmp1"
2021-01-21  0:50:02 0 [Note] InnoDB: Creating shared tablespace for temporary tables
2021-01-21  0:50:02 0 [Note] InnoDB: Setting file '/opt/lampp/var/mysql/ibtmp1' size to 12 MB. Physically writing the file full; Please wait ...
2021-01-21  0:50:02 0 [Note] InnoDB: File '/opt/lampp/var/mysql/ibtmp1' size is now 12 MB.
2021-01-21  0:50:02 0 [Note] InnoDB: Waiting for purge to start
2021-01-21  0:50:02 0 [Note] InnoDB: 10.4.11 started; log sequence number 215993131; transaction id 221150
2021-01-21  0:50:02 0 [Note] Plugin 'FEEDBACK' is disabled.
2021-01-21  0:50:02 0 [Note] InnoDB: Loading buffer pool(s) from /opt/lampp/var/mysql/ib_buffer_pool
2021-01-21  0:50:02 0 [Note] Server socket created on IP: '::'.
---------- 

我重新啟動了 MySQL,我的網站執行良好。我的 MySQL 版本是:Distrib 10.4.11-MariaDB,適用於 Linux (x86_64) Ubuntu 版本 20。

這種情況在一個月前出現過幾次。

我之前確實在一些文章中搜尋過解決方案,但仍然無法解決這個問題,

MySQL 伺服器每周至少崩潰 2 次

Wordpress + PHP+ apache +mysql,mysql每1/月崩潰一次

有沒有人被困在這種情況下,並且知道如何解決它?

在 XAMPP 控制面板上啟動 MySQL。

通過點擊 XAMPP 控制面板上的 Logs 按鈕檢查 My SQL 錯誤日誌“mysql_error.log”。

轉到 MySQL 數據庫中的“數據”目錄。我在我的電腦上的 D: 驅動器上安裝了 XAMPP,並且我電腦的 MySQL“數據”目錄位置是“/opt/lampp/var/mysql/”。您可能有不同的位置。

備份 MySQL“數據”文件夾

首先,您應該使用任何壓縮軟體創建“數據”文件夾的備份。

命名為“data_backup.zip”或您希望的任何類型的壓縮。我使用 WinRAR 壓縮軟體壓縮和備份 MySQL 的“數據”文件夾。

重命名“數據”文件夾

將“data”文件夾重命名為“data-oldfiles”。這對於將數據目錄重命名為任何新目錄名稱非常重要。創建一個新的“數據”文件夾

創建一個新文件夾並將文件夾名稱命名為“data”

為了解決這個問題,我們需要在 mysql 數據庫中創建一個新的“data”目錄。從“備份”文件夾複製內容

轉到“備份”文件夾並複制所有文件。

將備份文件夾中的文件粘貼到數據文件夾

現在從 XAMPP 啟動 MySQL 數據庫。

現在,您的 MySQL 數據庫將正常啟動而不會顯示任何錯誤。

傳輸所有 MySQL 項目數據庫、數據文件和日誌文件

如果您有許多用於各種項目的數據庫,那麼您必須將所有數據庫從“data-oldfiles”文件夾轉移到“data”文件夾。

從數據舊文件複製所有數據庫並粘貼到數據文件夾。

現在您必須將數據文件“ibdata1”和所有日誌文件“ib_logfile0, ib_logfile1”從數據舊文件夾複製到數據文件夾。如果您有許多 id_logile,則複製所有這些。

MySQL 錯誤 這可能是由於埠被阻塞、缺少依賴項、權限不正確、崩潰或被其他方法關閉所致。從 XAMPP 啟動 MySQL

現在從 XAMPP 啟動 MySQL。

轉到 phpMyAdmin 以檢查所有數據庫是否可用和工作。

16M太小了innodb_buffer_pool_size;試試50M。1GB VM 非常小。

max_connections降到10。

引用自:https://serverfault.com/questions/1051060