源碼安裝mysql設置log(mysql源碼包安裝)

  • 1、mysql開啟binlog日誌
  • 2、怎麼樣通過開啟MySQL查詢日誌log
  • 3、如何添加和調整mysql innodb log文件
  • 4、如何設置Log文件,記錄資料庫的操作信息
  • 5、centos怎麼開啟mysql的日誌服務
  • 6、如何修改mysql 的binlog

mysqlbinlog 是將 binlog 解析成可讀可執行的 SQL 的重要工具。

但解析體積較大的 binlog 時,如何查看 mysqlbinlog 的執行進度就變成了一個問題,mysqlbinlog 並未提供 –progress 這樣的參數。

那要怎麼查看 mysqlbinlog 的解析進度?

實驗

我們在 實驗 08 中介紹了如何生成隨機數據。可以利用其中技巧,生成較大的 binlog,我們忽略這個過程。

從已有的 binlog 開始,bin.000002 大約有 1.1 個 G:

請點擊輸入圖片描述

用 mysqlbinlog 解析該 binlog:

請點擊輸入圖片描述

大概會執行 4.6 秒左右。大家仔細做實驗時,可以將 binlog 放大一些,讓執行實驗更長一些。

我們在 mysqlbinlog 解析時,查看其文件句柄:

請點擊輸入圖片描述

可以看到 mysqlbinlog 用句柄 3 讀取 binlog。(我們暫時忽略句柄 4 指向的臨時文件,其涉及到了行格式的解析過程,我們安排在以後的實驗中慢慢介紹)

獲取了 mysqlbinlog 處理文件句柄 3 的進度,就可以大概估算 mysqlbinlog 的整體進度:

請點擊輸入圖片描述

可以看到 mysqlbinlog 此時的進度大概是 600M 左右,整體進度估算為 54%。

結論

我們無法讓 mysqlbinlog 直接輸出進度,於是通過觀察 mysqlbinlog 對 binlog 的讀取進度,估算mysqlbinlog 的整體處理進度。

如何查看當前的二進位日誌,可以使用mysqlbinlog的的工具,命令如下:shellmysqlbinlog mail-bin.000001(要寫絕對問題路徑 d://)或者shellmysqlbinlog mail-bin.000001 | tail

4)mysql有以下幾種日誌:錯誤日誌: -log-err查詢日誌: -log慢查詢日誌: -log-slow-queries更新日誌: -log-update二進位日誌: -log-bin在mysql的安裝目錄下,打開my.ini,在後面加上上面的參數,保存後重啟mysql服務就行了。例如:#Enter a name for the errorlog file. Otherwise a defaultname will be used.log-error=err.log#Enter a name for the querylog file. Otherwise a default name will be used.#log=#Enter a name for the slowquery log file. Otherwise a default name will be used.#log-slow-queries=#Enter a name for the updatelog file. Otherwise a default name will be used.#log-update=#Enter a name for the binarylog. Otherwise a default name will be used.#log-bin=上面只開啟了錯誤日誌,要開其他的日誌就把前面的「#」去掉。

添加調整innodb log文件步驟:

1. 停止mysql服務

1

# /etc/init.d/mysqld stop

[warning]定要關閉[/warning]2. 根據innodb_log_group_home_dir變數進入志目錄

1

# cd /data/mysql_data

3. 備份舊志文件防測便於退

1

# mv ib_logfile* /backup/

4. 按照要求調整志文件或數量並寫入my.cnf文件

innodb_log_file_size調整志文件

innodb_log_files_in_group調整志文件數量

innodb_log_group_home_dir調整志文件位於目錄

5. 重新啟mysql服務

該程按照新志配置創建志文件同注意查看mysql錯誤志監控否錯

1、首先確認你日誌是否啟用了mysqlshow

variables

like

‘log_bin’。

2、如果啟用了,即ON,那日誌文件就在mysql的安裝目錄的data目錄下。

3、怎樣知道當前的日誌mysql

show

master

status。

4、看二進位日誌文件用mysqlbinlog,shellmysqlbinlog

mail-bin.000001或者shellmysqlbinlog

mail-bin.000001

|

tail,Windows

下用類似的。

MySQL的日誌操作:

1、首先,登陸mysql後,執行sql語句:show

variables

like

‘log_bin’。

2、#錯誤日誌log-errol開啟方式:在my.ini的[mysqld]選項下:添加代碼:log-error=E:\log-error.txt。

記錄內容:主要是記錄啟動、運行或停止mysqld時出現的致命性問題,都是系統級的錯誤記錄。

3、#查詢日誌:log,開啟方式:在my.ini的[mysqld]選項下:添加代碼:log=E:/mysql_log.txt。

4、#二進位日誌:log-bin,開啟方式:在my.ini的[mysqld]選項下:添加代碼:log-bin=E:/mysql_log_bin,記錄內容:主要是記錄所有的更改數據的語句,可使用mysqlbinlog命令恢複數據。

Linux作為類Unix,同樣也存在這兩種風格,其中Centos屬於System V,本文主要介紹在Centos下(即System V風格)如何啟動和關閉MySQL,同時簡單介紹BSD系統的情況。

MySQL啟動方式

1)直接調用mysqld。這是最不常見的方式,不推薦使用。

2)運行mysql.server腳本

mysql.server腳本通過調用mysqld_safe啟動伺服器,該腳本可以通過參數start和stop指定啟動還是關閉。

mysql.server腳本在MySQL安裝目錄下的share/mysql目錄中,如果是採用源碼安裝的MySQL,則可以在support-files目錄里找到。如果想使用mysql.server,則必須把它複製到合適的運行級別目錄中,如下所示:

?

1

2

[plain]

cp mysql.server /etc/init.d/mysqld

chmod 755 /etc/init.d/mysqld

如上配置之後,就可以利用以下命令啟動和關閉MySQL實例了:

[sql]

service mysqld start/stop

/etc/init.d/mysqld start/stop

使用chkconfig命令配置開機自動啟動:

[sql]

chkconfig –add mysqld

chkconfig mysqld on

運行以下命令檢查是否正確啟用:

[plain]

[root@data data]# chkconfig –list mysqld

mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off

MySQL關閉方式

有兩種方法,一種方法使用mysql的check table和repair table 的sql語句,另一種方法是使用MySQL提供的多個myisamchk, isamchk數據檢測恢復工具。前者使用起來比較簡便。推薦使用。

1. check table 和 repair table

登陸mysql 終端:

mysql -uxxxxx -p dbname

check table tabTest;

如果出現的結果說Status是OK,則不用修復,如果有Error,可以用:

repair table tabTest;

進行修復,修復之後可以在用check table命令來進行檢查。在新版本的phpMyAdmin裡面也可以使用check/repair的功能。

2. myisamchk, isamchk

其中myisamchk適用於MYISAM類型的數據表,而isamchk適用於ISAM類型的數據表。這兩條命令的主要參數相同,一般新的系統都使用MYISAM作為預設的數據表類型,這裡以myisamchk為例子進行說明。當發現某個數據表出現問題時可以使用:

myisamchk tablename.MYI

進行檢測,如果需要修復的話,可以使用:

myisamchk -of tablename.MYI

關於myisamchk的詳細參數說明,可以參見它的使用幫助。需要注意的時在進行修改時必須確保MySQL伺服器沒有訪問這個數據表,保險的情況下是最好在進行檢測時把MySQL伺服器Shutdown掉。

-----------------------------

另外可以把下面的命令放在你的rc.local裡面啟動MySQL伺服器前:

[ -x /tmp/mysql.sock ] /pathtochk/myisamchk -of /DATA_DIR/*/*.MYI

其中的/tmp/mysql.sock是MySQL監聽的Sock文件位置,對於使用RPM安裝的用戶應該是/var/lib/mysql/mysql.sock,對於使用源碼安裝則是/tmp/mysql.sock可以根據自己的實際情況進行變更,而pathtochk則是myisamchk所在的位置,DATA_DIR是你的MySQL資料庫存放的位置。

需要注意的時,如果你打算把這條命令放在你的rc.local裡面,必須確認在執行這條指令時MySQL伺服器必須沒有啟動!檢測修復所有資料庫(表)

原創文章,作者:FZX1V,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/127162.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
FZX1V的頭像FZX1V
上一篇 2024-10-03 23:13
下一篇 2024-10-03 23:13

相關推薦

  • 如何修改mysql的埠號

    本文將介紹如何修改mysql的埠號,方便開發者根據實際需求配置對應埠號。 一、為什麼需要修改mysql埠號 默認情況下,mysql使用的埠號是3306。在某些情況下,我們需…

    編程 2025-04-29
  • 雲智直聘 源碼分析

    本文將會對雲智直聘的源碼進行分析,包括前端頁面和後端代碼,幫助讀者了解其架構、技術實現以及對一些常見的問題進行解決。通過本文的閱讀,讀者將會了解到雲智直聘的特點、優勢以及不足之處,…

    編程 2025-04-29
  • Python操作MySQL

    本文將從以下幾個方面對Python操作MySQL進行詳細闡述: 一、連接MySQL資料庫 在使用Python操作MySQL之前,我們需要先連接MySQL資料庫。在Python中,我…

    編程 2025-04-29
  • MySQL遞歸函數的用法

    本文將從多個方面對MySQL遞歸函數的用法做詳細的闡述,包括函數的定義、使用方法、示例及注意事項。 一、遞歸函數的定義 遞歸函數是指在函數內部調用自身的函數。MySQL提供了CRE…

    編程 2025-04-29
  • Log4j日誌列印到Systemout.log

    Log4j是Apache的一個強大的日誌組件,可以幫助開發者更好地管理日誌。在Java應用程序中,很多開發者都會選擇使用Log4j來實現日誌輸出。本文將介紹如何使用Log4j將日誌…

    編程 2025-04-28
  • MySQL bigint與long的區別

    本文將從數據類型定義、存儲空間、數據範圍、計算效率、應用場景五個方面詳細闡述MySQL bigint與long的區別。 一、數據類型定義 bigint在MySQL中是一種有符號的整…

    編程 2025-04-28
  • Python網站源碼解析

    本文將從多個方面對Python網站源碼進行詳細解析,包括搭建網站、數據處理、安全性等內容。 一、搭建網站 Python是一種高級編程語言,適用於多種領域。它也可以用於搭建網站。最常…

    編程 2025-04-28
  • MySQL左連接索引不生效問題解決

    在MySQL資料庫中,經常會使用左連接查詢操作,但是左連接查詢中索引不生效的情況也比較常見。本文將從多個方面探討MySQL左連接索引不生效問題,並給出相應的解決方法。 一、索引的作…

    編程 2025-04-28
  • 源碼是什麼

    源碼是一段計算機程序的原始代碼,它是程序員所編寫的可讀性高、理解性強的文本。在計算機中,源碼是指編寫的程序代碼,這些代碼按照一定規則排列,被計算機識別並執行。 一、源碼的組成 源碼…

    編程 2025-04-27
  • Go源碼閱讀

    Go語言是Google推出的一門靜態類型、編譯型、並髮型、語法簡單的編程語言。它因具有簡潔高效,內置GC等優秀特性,被越來越多的開發者所鍾愛。在這篇文章中,我們將介紹如何從多個方面…

    編程 2025-04-27

發表回復

登錄後才能評論