日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

MySql学习15----MySql日志

發布時間:2023/12/20 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MySql学习15----MySql日志 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

MySql日志記錄了MySql數據庫日常操作和錯誤信息。MySql有不同類型的日志文件(各自存儲了不同類型的日志),從日志當中可以查詢到MySql數據庫的運行情況、用戶操作、錯誤信息等,可以為MySql管理和優化提供必要的信息。

一. 日志簡介

MySql日志主要分為4類,使用這些日志文件,可以查看MySql內部發生的事情。

  • 錯誤日志:記錄MySql服務的啟動、運行或停止MySql服務時出現的問題;
  • 查詢日志:記錄建立的客戶端連接和執行的語句;
  • 二進制日志:記錄所有更改數據的語句,可以用于數據復制;
  • 慢查詢日志:記錄所有執行時間超過long_query_time的所有查詢或不使用索引的查詢

默認情況下,所有日志創建于MySql數據目錄中。通過刷新日志,可以強制MySql關閉和重新打開日志文件。當執行一個Flush logs語句或執行MySqladmin flush-logs或MySqladmin refresh時,將刷新日志。

二. 二進制日志

使用二進制日志的主要目的是最大可能地恢復數據庫,因為二進制日志包含備份后進行的所有更新。

二進制日志主要記錄MySql數據庫的變化。二進制日志以一種有效的格式,并且是事務安全的方式包含更新日志中可用的所有信息。二進制日志包含了所有更新了數據或者已經潛在更新了數據(例如,沒有匹配任何行的一個DELETE)的語句。語句以“事件”的形式保存,描述數據更改。

2.1 啟動和設置二進制日志

默認情況下,二進制日志是關閉的,可以通過修改MySQL的配置文件來啟動和設置二進制日志。

C:\ProgramData\MySQL\MySQL Server 5.7\my.ini中有下面幾個參數設置是關于二進制日志的:

舉例:直接打開C:\ProgramData\MySQL\MySQL Server 5.7\my.in的文件,取消Log-bin前面的注釋,并添加expire_logs_days和max_binlog_size兩個字段

修改了以后,不會立即生效的,需要重啟MySql服務器(note,不是指的exit命令退出的客戶端,而是進程中的MySql服務)。究竟生效沒有,可以通過show variables變量來查看具體的值是否修改成功了。

關閉和重新啟動MySql服務之后,新的二進制文件將出現在C:\ProgramData\MySQL\MySQL Server 5.7\Data目錄下,并自動生成.0000001和.index兩個文件,文件名稱默認為主機名稱。當然,可以自定義日志路徑,就需需要log-bin目錄中指定二進制日志存放路徑:

log-bin="D:/mylogs"
這樣,就會在mlogs路徑下生成對應的二進制文件 名稱為mylogs.0000001和mylogs.index

note: 數據庫文件最好不要和日志文件存放在同一個磁盤上,這樣,當數據庫文件所在的磁盤出現故障時,可以使用日志文件恢復數據。

2.2 查看二進制日志

MySql二進制日志存儲了所有的變更信息,MySql二進制日志時經常用到的。當MySql創建二進制日志文件時,首先創建一個以“filename”為名稱,以“.index”為后綴的文件;再創建一個以“filename”為名稱,以“.000001”為后綴的文件。當MySql服務重新啟動一次,以“.000001”為后綴的文件會增加一個,并且后綴名加1遞增;如果日志長度超過了max_binlog_size的上限也會創建一個新的日志文件。

舉例:使用show binary logs查看二進制文件個數及文件名

mysql> show binary logs; +---------------------+-----------+ | Log_name | File_size | +---------------------+-----------+ | WL12345-bin.000001 | 154 | +---------------------+-----------+ 1 row in set (0.00 sec)

可以看到,當前只有一個二進制文件。日志文件的個數與MySql服務啟動的次數相同。

舉例:假設Mytest中有四個表,刪除三個表,查看對應的日志內容。使用mysqlbinlog查看二進制日志的內容

1 mysql> use mytest; 2 Database changed 3 mysql> show tables; 4 +------------------+ 5 | Tables_in_mytest | 6 +------------------+ 7 | stu | 8 | stu2 | 9 | stu3 | 10 | user | 11 +------------------+ 12 4 rows in set (0.00 sec) 13 14 mysql> drop table stu2,stu3,user; 15 Query OK, 0 rows affected (0.09 sec) View Code C:\Users\Hermioner>cd C:\ProgramData\MySQL\MySQL Server 5.7\DataC:\ProgramData\MySQL\MySQL Server 5.7\Data>mysqlbinlog WL12345-bin.000001

具體的結果中,將會出現DROP語句,記錄了剛剛的刪除操作

DROP TABLE `stu2`,`stu3`,`user` /* generated by server */
/*!*/;
# at 354
#190215 16:38:25 server id 1 end_log_pos 377 CRC32 0xaff15f2d Stop

Note: 即使現在更新了數據,日志名字個數都不改變,只有重啟了MySql服務器,才會增加日志個數。假設現在重啟了,查看日志個數和名字:

mysql> show binary logs; +---------------------+-----------+ | Log_name | File_size | +---------------------+-----------+ | WL12345-bin.000001 | 377 | | WL12345-bin.000002 | 154 | +---------------------+-----------+ 2 rows in set (0.00 sec)

2.3 刪除二進制日志

MySql的二進制文件可以配置自動刪除,比如之前配置的過期刪除時間,同時MySql也提供了安全的手動刪除二進制日志文件的方法:RESET MASTER刪除所有的二進制日志文件;PURGE MASTER LOGS只刪除部分二進制日志文件。

(1)使用RESET MASTER語句刪除所有二進制日志文件

? ? ? ? ? ?語法:

RESET MASTER;

?說明:執行完該語句之后,所有二進制日志將被刪除,MySql會重新創建二進制日志文件,新的日志文件擴展名將重新從000001開始編號。

(2)使用PURGE MASTER LOGS語句刪除指定日志文件

? ? ? ? ? 語法:

PURGE {MASTER | BINARY} LOGS TO 'log_name' PURGE {MASTER | BINARY} LOGS BEFORE 'date'

說明:第一種方法指定文件名,執行該命令將刪除文件名編號比指定文件名編號小的所有日志文件。第二種方法指定日期,執行該命令將刪除指定日期以前的所有日志文件。

舉例:刪除創建時間比binlog.000003早的所有日志文件

舉例:刪除早于2016年1月30日的所有日志

2.4 使用二進制日志恢復數據庫

要想從二進制日志恢復數據,需要知道當前二進制日志文件的路徑和文件名。一般可以從配置文件my.ini中找到路徑。

語法:

位置和結束位置。

note: 上面的position代表日志文件中的具體start或者stop的行數位置

2.5 暫時停止二進制日志功能

三. 錯誤日志

3.1 啟動和設置錯誤日志

3.2 查看錯誤日志

3.3 刪除錯誤日志

四. 通用查詢日志

通用查詢日志記錄MySql的所有用戶操作,包括啟動和關閉服務、執行查詢和更新語句等。

4.1 啟動和設置通用查詢日志

默認時沒開啟的,還是通過修改my.ini:

4.2 查看通用查詢日志

5.3 刪除通用查詢日志

五. 慢查詢日志

慢查詢日志是記錄查詢時長超過指定時間的日志。慢查詢日志主要用來記錄執行時間較長的查詢語句。通過慢查詢日志,可以找出執行時間較長、執行效率較低的語句,然后進行優化。

5.1 啟動和設置慢查詢日志

5.2 查看慢查詢日志

5.3 刪除慢查詢日志

?

參考文獻:

《MySql5.7 從入門到精通》

轉載于:https://www.cnblogs.com/Hermioner/p/10384818.html

總結

以上是生活随笔為你收集整理的MySql学习15----MySql日志的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。