1. 程式人生 > 其它 >【異常修復】伺服器發生變更後使用VS Code連線報錯

【異常修復】伺服器發生變更後使用VS Code連線報錯

一、錯誤日誌

錯誤日誌是 MySQL 中最重要的日誌之一,它記錄了當 mysqld 啟動和停止時,以及伺服器在執行過程中發生任何嚴重錯誤時的相關資訊。當資料庫出現任何故障導致無法正常使用時,建議首先檢視此日誌。

該日誌是預設開啟的,預設存放目錄 /var/log/,預設的日誌檔名為 mysqld.log 。檢視日誌

show variables like '%log_error%';

二、二進位制日誌

1.介紹

二進位制日誌(BINLOG)記錄了所有的 DDL(資料定義語言)語句和 DML(資料操縱語言)語句,但不包括資料查詢(SELECT、SHOW)語句。

作用:①. 災難時的資料恢復;②. MySQL的主從複製

。在MySQL8版本中,預設二進位制日誌是開啟著的,涉及到的引數如下:

show variables like '%log_bin%';

引數說明:

(1)log_bin_basename:當前資料庫伺服器的binlog日誌的基礎名稱(字首),具體的binlog檔名需要再該basename的基礎上加上編號(編號從000001開始)。

(2)log_bin_index:binlog的索引檔案,裡面記錄了當前伺服器關聯的binlog檔案有哪些。

2. 日誌格式

MySQL伺服器中提供了多種格式來記錄二進位制日誌,具體格式及特點如下:

show variables like '%binlog_format%
';

修改日誌格式需要編輯配置檔案 my.cnf 並重啟mysql

3. 日誌檢視

由於日誌是以二進位制方式儲存的,不能直接讀取,需要通過二進位制日誌查詢工具 mysqlbinlog 來檢視,具體語法:

mysqlbinlog [ 引數選項 ] logfilename 
 
引數選項: 
    -d    指定資料庫名稱,只列出指定的資料庫相關操作。 
    -o    忽略掉日誌中的前n行命令。 
    -v    將行事件(資料變更)重構為SQL語句 
    -vv   將行事件(資料變更)重構為SQL語句,並輸出註釋資訊 

4.日誌刪除

對於比較繁忙的業務系統,每天生成的binlog資料巨大,如果長時間不清除,將會佔用大量磁碟空間。可以通過以下幾種方式清理日誌:

 也可以在mysql的配置檔案中配置二進位制日誌的過期時間,設定了之後,二進位制日誌過期會自動刪除。

show variables like '%binlog_expire_logs_seconds%';

三、查詢日誌

查詢日誌中記錄了客戶端的所有操作語句,而二進位制日誌不包含查詢資料的SQL語句。預設情況下,查詢日誌是未開啟的。

SHOW VARIABLES LIKE '%general%';

修改配置檔案my.cnf

四、慢查詢日誌

慢查詢日誌記錄了所有執行時間超過引數 long_query_time 設定值並且掃描記錄數不小於 min_examined_row_limit 的所有的SQL語句的日誌,預設未開啟。long_query_time 預設為 10 秒,最小為 0, 精度可以到微秒。

如果需要開啟慢查詢日誌,需要在MySQL的配置檔案 /etc/my.cnf 中配置如下引數:

#慢查詢日誌 
slow_query_log=1 
#執行時間引數 
long_query_time=2

預設情況下,不會記錄管理語句,也不會記錄不使用索引進行查詢的查詢。可以使用 log_slow_admin_statements和 更改此行為 log_queries_not_using_indexes,如下所述。

#記錄執行較慢的管理語句
log_slow_admin_statements =1

#記錄執行較慢的未使用索引的語句
log_queries_not_using_indexes = 1