mysql數據庫中關於記錄存在,mysql數據庫中關於記錄存在的問題

本文目錄一覽:

如何在MySql中記錄SQL日誌記錄

一.錯誤日誌

錯誤日誌在Mysql數據庫中很重要,它記錄著mysqld啟動和停止,以及服務器在運行過程中發生的任何錯誤的相關信息。

1.配置信息

–log-error=[file-name]用來指定錯誤日誌存放的位置。

如果沒有指定[file-name],默認hostname.err做為文件名,默認存放在DATADIR目錄中。

也可以將log-error配置到my.cnf文件中,這樣就省去了每次在啟動mysqld時都手工指定–log-error.例如:

[mysql@test2]$ vi /etc/my.cnf

# The MySQL server

[mysqld]

….

log-error = /var/lib/mysql/test2_mysqld.err

…..

2.錯誤信息樣板

080313 05:21:55 mysqld started

080313 5:21:55 InnoDB: Started; log sequence number 0 43655

080313 5:21:55 [Note] /usr/local/mysql/bin/mysqld: ready for connections.

Version: ‘5.0.26-standard-log’ socket: ‘/var/lib/mysql/mysql.sock’ port: 3306 MySQL Community Edition – Standard (GPL)

080313 5:24:13 [Note] /usr/local/mysql/bin/mysqld: Normal shutdown

080313 5:24:13 InnoDB: Starting shutdown…

080313 5:24:16 InnoDB: Shutdown completed; log sequence number 0 43655

080313 5:24:16 [Note] /usr/local/mysql/bin/mysqld: Shutdown complete

080313 05:24:16 mysqld ended

080313 05:24:47 mysqld started

080313 5:24:47 InnoDB: Started; log sequence number 0 43655

080313 5:24:47 [Note] /usr/local/mysql/bin/mysqld: ready for connections.

Version: ‘5.0.26-standard-log’ socket: ‘/var/lib/mysql/mysql.sock’ port: 3306 MySQL Community Edition – Standard (GPL)

080313 5:33:49 [Note] /usr/local/mysql/bin/mysqld: Normal shutdown

三.查詢日誌

查詢日誌記錄了clinet的所有的語句。

Note:由於log日誌記錄了數據庫所有操作,對於訪問頻繁的系統,此種日誌會造成性能影響,建議關閉。

1.配置信息

–log=[file-name]用來指定錯誤日誌存放的位置。

如果沒有指定[file-name],默認為主機名(hostname)做為文件名,默認存放在DATADIR目錄中。

也可以將log配置到my.cnf文件中,這樣就省去了每次在啟動mysqld時都手工指定–log.例如:

# The MySQL server

[mysqld]

……

#query-log

log = /var/lib/mysql/query_log.log

……

2.讀取查詢日誌

查詢日誌是純文本格可,可以使用OS文本讀取工具直接打開查看。例如:

[mysql@test2]$ tail -n 15 query_log.log

080313 7:58:28 17 Query show tables

080313 8:07:45 17 Quit

080313 10:01:48 18 Connect root@localhost on

080313 10:02:38 18 Query SELECT DATABASE()

18 Init DB test

080313 10:02:42 18 Query show tables

080313 10:03:07 18 Query select * from pet

080313 10:06:26 18 Query insert into pet values(‘hunter’,’yxyup’,’cat’,’f’,’1996-04-29′,null)

080313 10:06:39 18 Query select * from pet

080313 10:07:13 18 Query update pet set sex=’m’ where name=’hunter’

080313 10:07:38 18 Query delete from pet where name=’hunter’

080313 10:13:48 18 Query desc test8

080313 10:14:13 18 Query create table t1(id int,name char(10))

080313 10:14:41 18 Query alter table t1 add sex char(2)

[mysql@test2]$

四.慢查詢日誌

慢查詢日誌是記錄了執行時間超過參數long_query_time(單位是秒)所設定值的SQL語句日誌。

Note:慢查詢日誌對於我們發現性能有問題的SQL有很幫助,建議使用並經常分析

1.配置信息

–log-slow-queries=[file-name]用來指定錯誤日誌存放的位置。

如果沒有指定[file-name],默認為hostname-slow.log做為文件名,默認存放在DATADIR目錄中。

也可以將log-slow-queries配置到my.cnf文件中,這樣就省去了每次在啟動mysqld時都手工指定–log-slow-queries.例如:

# The MySQL server

[mysqld]

……

#slow-query-log

log-slow-queries = /var/lib/mysql/slow_query_log.log

……

2.讀取慢查詢日誌

[mysql@test2]$ cat slow_query_log.log

/usr/local/mysql/bin/mysqld, Version: 5.0.26-standard-log. started with:

Tcp port: 3306 Unix socket: /var/lib/mysql/mysql.sock

Time Id Command Argument

# Time: 080313 5:41:46

# User@Host: root[root] @ localhost []

# Query_time: 108 Lock_time: 0 Rows_sent: 0 Rows_examined: 8738

use test;

select count(1) from t1 a, t1 b,t1 c where a.id=b.id and b.name=c.name;

# Time: 080313 5:52:04

# User@Host: root[root] @ localhost []

# Query_time: 583 Lock_time: 0 Rows_sent: 0 Rows_examined: 508521177

select count(1) from t1 a, t1 b where a.id=b.id;

/usr/local/mysql/bin/mysqld, Version: 5.0.26-standard-log. started with:

Tcp port: 3306 Unix socket: /var/lib/mysql/mysql.sock

Time Id Command Argument

# Time: 080313 10:39:59

# User@Host: root[root] @ localhost []

# Query_time: 11 Lock_time: 0 Rows_sent: 4537467 Rows_examined: 4537467

use test;

select id from tail;

如果慢查詢日誌記錄很多可以使用mysqldumpslow進行分類匯總

[mysql@test2]$ mysqldumpslow slow_query_log.log

Reading mysql slow query log from slow_query_log.log

Count: 1 Time=583.00s (583s) Lock=0.00s (0s) Rows=0.0 (0), root[root]@localhost

select count(N) from t1 a, t1 b where a.id=b.id

Count: 1 Time=108.00s (108s) Lock=0.00s (0s) Rows=0.0 (0), root[root]@localhost

select count(N) from t1 a, t1 b,t1 c where a.id=b.id and b.name=c.name

Count: 1 Time=11.00s (11s) Lock=0.00s (0s) Rows=4537467.0 (4537467), root[root]@localhost

select id from tail;

mysql有以下幾種日誌:

錯誤日誌: -log-err

查詢日誌: -log

慢查詢日誌: -log-slow-queries

更新日誌: -log-update

二進制日誌: -log-bin

在mysql的安裝目錄下,打開my.ini,在後面加上上面的參數,保存後重啟mysql服務就行了。

例如:

#Enter a name for the binary log. Otherwise a default name will be used.

#log-bin=

#Enter a name for the query log file. Otherwise a default name will be used.

#log=

#Enter a name for the error log file. Otherwise a default name will be used.

log-error=

#Enter a name for the update log file. Otherwise a default name will be used.

#log-update=

查看日至:

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

mysqlshow variables like ‘log_bin’;

如果啟用了,即ON

那日誌文件就在mysql的安裝目錄的data目錄下

cat/tail 日誌文件名

2. 怎樣知道當前的日誌

mysql show master status;

3. 查看從某一段時間到某一段時間的日誌

mysqlbinlog –start-datetime=’2008-01-19 00:00:00′

–stop-datetime=’2008-01-30 00:00:00′ /var/log/mysql/mysql-bin.000006

mysqllog1.log

java要給mysql 數據庫中的一張表增加一條記錄,如何通過主鍵來檢驗這條記錄在表中是否已存在。

mysql可以操作 存在該記錄則更新,不存在則插入記錄的sql

INSERT table (auto_id, auto_name) values (1, ‘yourname’) ON DUPLICATE KEY UPDATE auto_name=’yourname’

可以查一下ON DUPLICATE KEY UPDATE的使用

你也可以通過查詢關鍵字的記錄數,為1的時候,就表示存在,0 的時候不存在,插入記錄。

請問mysql數據庫中的信息存在那個文件下了?

你好,我的是電腦是xp環境,在C:\Documents and Settings\All Users\Application Data\MySQL\MySQL Server 5.5\data這個目錄下

用php如何查詢mysql數據庫里是否存在這個記錄

哎,比如說

select tab_id from tabname where tab_user=’且聽風吟福利吧’

如果查詢出來tab_id有數據就說明存在

又或

select count(tab_id) from tabname where tab_user=’且聽風吟福利吧’

如果查詢出來0就說明存在

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/199259.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-04 19:15
下一篇 2024-12-04 19:15

相關推薦

  • Python官網中文版:解決你的編程問題

    Python是一種高級編程語言,它可以用於Web開發、科學計算、人工智能等領域。Python官網中文版提供了全面的資源和教程,可以幫助你入門學習和進一步提高編程技能。 一、Pyth…

    編程 2025-04-29
  • 如何修改mysql的端口號

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

    編程 2025-04-29
  • 如何解決WPS保存提示會導致宏不可用的問題

    如果您使用過WPS,可能會碰到在保存的時候提示“文件中含有宏,保存將導致宏不可用”的問題。這個問題是因為WPS在默認情況下不允許保存帶有宏的文件,為了解決這個問題,本篇文章將從多個…

    編程 2025-04-29
  • Java Thread.start() 執行幾次的相關問題

    Java多線程編程作為Java開發中的重要內容,自然會有很多相關問題。在本篇文章中,我們將以Java Thread.start() 執行幾次為中心,為您介紹這方面的問題及其解決方案…

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

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

    編程 2025-04-29
  • Python爬蟲亂碼問題

    在網絡爬蟲中,經常會遇到中文亂碼問題。雖然Python自帶了編碼轉換功能,但有時候會出現一些比較奇怪的情況。本文章將從多個方面對Python爬蟲亂碼問題進行詳細的闡述,並給出對應的…

    編程 2025-04-29
  • NodeJS 建立TCP連接出現粘包問題

    在TCP/IP協議中,由於TCP是面向字節流的協議,發送方把需要傳輸的數據流按照MSS(Maximum Segment Size,最大報文段長度)來分割成若干個TCP分節,在接收端…

    編程 2025-04-29
  • 如何解決vuejs應用在nginx非根目錄下部署時訪問404的問題

    當我們使用Vue.js開發應用時,我們會發現將應用部署在nginx的非根目錄下時,訪問該應用時會出現404錯誤。這是因為Vue在刷新頁面或者直接訪問非根目錄的路由時,會認為服務器上…

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

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

    編程 2025-04-29
  • 如何解決egalaxtouch設備未找到的問題

    egalaxtouch設備未找到問題通常出現在Windows或Linux操作系統上。如果你遇到了這個問題,不要慌張,下面我們從多個方面進行詳細闡述解決方案。 一、檢查硬件連接 首先…

    編程 2025-04-29

發表回復

登錄後才能評論