찾다
데이터 베이스MySQL 튜토리얼mysql의 데이터 업데이트 작업은 어떤 로그에 기록됩니까?

MySQL의 데이터 업데이트 작업은 일반 쿼리 로그와 바이너리 로그에 기록됩니다. 일반 쿼리 로그는 MySQL 서비스 시작 및 종료, 업데이트 명령문, 쿼리 명령문 등을 포함한 모든 사용자 작업을 기록하는 데 사용됩니다. 바이너리 로그는 다양한 데이터베이스 작업을 바이너리 형식으로 기록하지만 쿼리 명령문은 기록하지 않습니다.

mysql의 데이터 업데이트 작업은 어떤 로그에 기록됩니까?

(추천 튜토리얼: mysql 비디오 튜토리얼)

로그는 데이터베이스의 중요한 부분으로 주로 데이터베이스의 실행 상태, 일일 작업 및 오류 정보를 기록하는 데 사용됩니다.

MySQL 일반 쿼리 로그(General Query Log)

일반 쿼리 로그(General Query Log)는 MySQL 서비스 시작 및 종료, 업데이트 문 및 쿼리 문 등을 포함한 모든 사용자 작업을 기록하는 데 사용됩니다.

기본적으로 일반 쿼리 로그 기능은 꺼져있습니다. 다음 명령을 실행하면 일반 쿼리 로그가 켜져 있는지 확인할 수 있습니다.

mysql> SHOW VARIABLES LIKE '%general%';
+------------------+----------------------------------------------------------------+
| Variable_name    | Value                                                          |
+------------------+----------------------------------------------------------------+
| general_log      | OFF                                                            |
| general_log_file | C:\ProgramData\MySQL\MySQL Server 5.7\Data\LAPTOP-UHQ6V8KP.log |
+------------------+----------------------------------------------------------------+
2 rows in set, 1 warning (0.01 sec)

결과를 보면 일반 쿼리 로그가 꺼져 있는 것을 확인할 수 있으며,general_log_file 변수는 일반 쿼리 로그 파일의 위치를 ​​지정합니다.

일반 쿼리 로그 시작 및 설정

MySQL에서는 MySQL 구성 파일에 log 옵션을 추가하여 일반 쿼리 로그를 활성화할 수 있습니다. 형식은 다음과 같습니다.

[mysqld]
log=dir/filename

그 중 dir은 다음과 같습니다. 매개변수는 일반 쿼리 로그의 저장 경로를 지정합니다. filename 매개변수는 로그의 파일 이름을 지정합니다. 저장 경로를 지정하지 않으면 일반 쿼리 로그는 기본적으로 MySQL 데이터베이스의 데이터 폴더에 저장됩니다. 파일 이름을 지정하지 않으면 기본 파일 이름은 호스트 이름.log입니다. 여기서 호스트 이름은 호스트 이름을 나타냅니다.

일반 쿼리 로그 보기

사용자의 최근 작업을 알고 싶다면 일반 쿼리 로그를 볼 수 있습니다. 일반 쿼리 로그는 텍스트 파일 형식으로 저장되며, 일반 텍스트 파일을 사용하여 이러한 유형의 로그 내용을 볼 수 있습니다.

예제 1

먼저 일반 쿼리 로그 기능이 켜져 있는지 확인한 후 tb_student 테이블의 레코드를 쿼리합니다. SQL 명령 및 실행 과정은 다음과 같습니다.

mysql> SHOW VARIABLES LIKE '%general%';
+------------------+----------------------------------------------------------------+
| Variable_name    | Value                                                          |
+------------------+----------------------------------------------------------------+
| general_log      | ON                                                             |
| general_log_file | C:\ProgramData\MySQL\MySQL Server 5.7\Data\LAPTOP-UHQ6V8KP.log |
+------------------+----------------------------------------------------------------+
2 rows in set, 1 warning (0.02 sec)

mysql> use test;
Database changed
mysql> SELECT * FROM tb_student;
+----+--------+
| id | name   |
+----+--------+
|  1 | Java   |
|  2 | MySQL  |
|  3 | Python |
+----+--------+

3 행 세트(0.06초)

성공적으로 실행된 후 일반 쿼리 로그를 엽니다. 여기서 로그 이름은 LAPTOP-UHQ6V8KP.log입니다. 다음은 일반 쿼리 로그의 일부입니다.

C:\Program Files\MySQL\MySQL Server 5.7\bin\mysqld.exe, Version: 5.7.29-log (MySQL Community Server (GPL)). started with:
TCP Port: 3306, Named Pipe: MySQL
Time                 Id Command    Argument
2020-05-29T06:43:44.382878Z     7 Quit
2020-05-29T06:44:10.001382Z     8 Connect root@localhost on  using SSL/TLS
2020-05-29T06:44:10.007532Z     8 Query select @@version_comment limit 1
2020-05-29T06:44:11.748179Z     8 Query SHOW VARIABLES LIKE '%general%'
2020-05-29T06:44:25.487472Z     8 Query SELECT DATABASE()
2020-05-29T06:44:25.487748Z     8 Init DB test
2020-05-29T06:44:35.390523Z     8 Query SELECT * FROM tb_student

로그에는 클라이언트의 모든 행동이 매우 명확하게 기록되어 있는 것을 볼 수 있습니다.

MySQL 바이너리 로그(바이너리 로그)

바이너리 로그(바이너리 로그)는 변경 로그(업데이트 로그)라고도 불리며 MySQL에서 매우 중요한 로그입니다. 주로 데이터베이스의 변경 사항, 즉 SQL 문의 DDL 및 DML 문을 기록하는 데 사용되며 데이터 기록 쿼리 작업은 포함되지 않습니다.

MySQL 데이터베이스가 예기치 않게 중지된 경우 바이너리 로그 파일을 사용하여 사용자가 수행한 작업과 데이터베이스 서버 파일에 어떤 수정이 이루어졌는지 확인한 다음 바이너리 로그의 기록을 기반으로 데이터베이스 서버를 복원할 수 있습니다. 파일.

기본적으로 바이너리 로그 기능은 꺼져있습니다. 다음 명령어를 실행하면 바이너리 로그가 켜져 있는지 확인할 수 있습니다.

mysql> SHOW VARIABLES LIKE 'log_bin';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| log_bin       | OFF   |
+---------------+-------+
1 row in set, 1 warning (0.02 sec)

결과에서 알 수 있듯이 바이너리 로그가 꺼져 있습니다.

바이너리 로그 시작 및 설정

MySQL에서는 구성 파일에 log-bin 옵션을 추가하여 바이너리 로그를 활성화할 수 있습니다. 형식은 다음과 같습니다.

[mysqld]
log-bin=dir/[filename]

그 중 dir 매개변수는 바이너리 파일의 저장 경로, filename 매개변수는 바이너리 파일의 파일 이름을 filename.number 형식으로 지정하고 번호는 000001, 000002 등의 형식으로 지정합니다.

MySQL 서비스가 다시 시작될 때마다 새로운 바이너리 로그 파일이 생성됩니다. 이러한 로그 파일의 파일 이름 부분은 변경되지 않으며 숫자는 계속 증가합니다.

dir 및 filename 매개변수가 없는 경우 바이너리 로그는 기본적으로 데이터베이스의 데이터 디렉터리에 저장됩니다. 기본 파일 이름은 호스트 이름-bin.number입니다. 여기서 호스트 이름은 호스트 이름을 나타냅니다.

my.ini 파일의 [mysqld] 그룹에 다음 명령문을 추가하세요.

log-bin

MySQL 서버를 다시 시작하면 MySQL 데이터베이스의 데이터 디렉터리에 LAPTOP-UHQ6V8KP-bin.000001 파일이 보입니다. LAPTOP-UHQ6V8KP-bin.index 파일도 생성되었습니다. 여기서 MySQL 서버의 호스트 이름은 LAPTOP-UHQ6V8KP입니다.

my.ini 파일의 [mysqld] 그룹에서 다음과 같이 수정할 수도 있습니다.

log-bin=C:log\mylog

MySQL 서비스를 다시 시작하면 C:log 폴더에 mylog.000001 파일과 mylog.index 파일이 보입니다.

바이너리 로그 보기

1. 바이너리 로그 파일 목록 보기

다음 명령을 사용하여 MySQL에 있는 바이너리 로그 파일을 볼 수 있습니다.

mysql> SHOW binary logs;
+----------------------------+-----------+
| Log_name                   | File_size |
+----------------------------+-----------+
| LAPTOP-UHQ6V8KP-bin.000001 |       177 |
| LAPTOP-UHQ6V8KP-bin.000002 |       154 |
+----------------------------+-----------+
2 rows in set (0.00 sec)

2. being writing

다음 명령어를 사용하면 현재 MySQL에 작성되고 있는 바이너리 로그 파일을 볼 수 있습니다.

mysql> SHOW master status;
+----------------------------+----------+--------------+------------------+-------------------+
| File                       | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+----------------------------+----------+--------------+------------------+-------------------+
| LAPTOP-UHQ6V8KP-bin.000002 |      154 |              |                  |                   |
+----------------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)

3. 바이너리 로그 파일의 내용 보기

바이너리 로그는 바이너리 형식으로 저장되며 직접 열어 볼 수 없습니다. 바이너리 로그를 보려면 mysqlbinlog 명령을 사용해야 합니다.

mysqlbinlog 命令的语法形式如下:

mysqlbinlog filename.number

mysqlbinlog 命令只在当前文件夹下查找指定的二进制日志,因此需要在二进制日志所在的目录下运行该命令,否则将会找不到指定的二进制日志文件。

例 1

下面使用 mysqlbinlog 命令,来查看 C:\log 目录下的 mylog.000001 文件,代码执行如下:

C:\Users\11645>cd C:\log
C:\log>mysqlbinlog mylog.000001
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
DELIMITER /*!*/;
# at 4
#200527  9:33:37 server id 1  end_log_pos 123 CRC32 0x69738cfd  Start: binlog v 4, server v 5.7.29-log created 200527  9:33:37 at startup
......

由于日志内容较长,这里只展示了 mylog 中的部分内容。

使用 mysqlbinlog 命令时,可以指定二进制文件的存储路径。这样可以确保 mysqlbinlog 命令可以找到二进制文件。上面例子中的命令可以变为如下形式:

mysqlbinlog C:\log\mylog.000001

这样,mysqlbinlog 命令就会到 C:\log 目录下去查找 mylog.000001 文件。如果不指定路径,mysqlbinlog 命令将在当前目录下查找 mylog.000001 文件。

除了 filename.number 文件,MySQL 还会生成一个名为 filename.index 的文件,这个文件存储着所有二进制日志文件的列表,可以用记事本打开该文件。

小技巧:实际工作中,二进制日志文件与数据库的数据文件不放在同一块硬盘上,这样即使数据文件所在的硬盘被破坏,也可以使用另一块硬盘上的二进制日志来恢复数据库文件。两块硬盘同时坏了的可能性要小得多,这样可以保证数据库中数据的安全。

更多编程相关知识,请访问:编程入门!!

위 내용은 mysql의 데이터 업데이트 작업은 어떤 로그에 기록됩니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
MySQL의 라이센스는 다른 데이터베이스 시스템과 어떻게 비교됩니까?MySQL의 라이센스는 다른 데이터베이스 시스템과 어떻게 비교됩니까?Apr 25, 2025 am 12:26 AM

MySQL은 GPL 라이센스를 사용합니다. 1) GPL 라이센스는 MySQL의 무료 사용, 수정 및 분포를 허용하지만 수정 된 분포는 GPL을 준수해야합니다. 2) 상업용 라이센스는 공개 수정을 피할 수 있으며 기밀이 필요한 상업용 응용 프로그램에 적합합니다.

MyISAM을 통해 언제 innodb를 선택 하시겠습니까?MyISAM을 통해 언제 innodb를 선택 하시겠습니까?Apr 25, 2025 am 12:22 AM

MyISAM 대신 InnoDB를 선택할 때의 상황에는 다음이 포함됩니다. 1) 거래 지원, 2) 높은 동시성 환경, 3) 높은 데이터 일관성; 반대로, MyISAM을 선택할 때의 상황에는 다음이 포함됩니다. 1) 주로 읽기 작업, 2) 거래 지원이 필요하지 않습니다. InnoDB는 전자 상거래 플랫폼과 같은 높은 데이터 일관성 및 트랜잭션 처리가 필요한 응용 프로그램에 적합하지만 MyISAM은 블로그 시스템과 같은 읽기 집약적 및 트랜잭션이없는 애플리케이션에 적합합니다.

MySQL에서 외국 키의 목적을 설명하십시오.MySQL에서 외국 키의 목적을 설명하십시오.Apr 25, 2025 am 12:17 AM

MySQL에서 외국 키의 기능은 테이블 간의 관계를 설정하고 데이터의 일관성과 무결성을 보장하는 것입니다. 외국 키는 참조 무결성 검사 및 계단식 작업을 통해 데이터의 효과를 유지합니다. 성능 최적화에주의를 기울이고 사용할 때 일반적인 오류를 피하십시오.

MySQL의 다른 유형의 인덱스는 무엇입니까?MySQL의 다른 유형의 인덱스는 무엇입니까?Apr 25, 2025 am 12:12 AM

MySQL에는 B-Tree Index, Hash Index, Full-Text Index 및 공간 인덱스의 네 가지 주요 인덱스 유형이 있습니다. 1.B- 트리 색인은 범위 쿼리, 정렬 및 그룹화에 적합하며 직원 테이블의 이름 열에서 생성에 적합합니다. 2. HASH 인덱스는 동등한 쿼리에 적합하며 메모리 저장 엔진의 HASH_Table 테이블의 ID 열에서 생성에 적합합니다. 3. 전체 텍스트 색인은 기사 테이블의 내용 열에서 생성에 적합한 텍스트 검색에 사용됩니다. 4. 공간 지수는 지리 공간 쿼리에 사용되며 위치 테이블의 Geom 열에서 생성에 적합합니다.

MySQL에서 인덱스를 어떻게 생성합니까?MySQL에서 인덱스를 어떻게 생성합니까?Apr 25, 2025 am 12:06 AM

toreateanindexinmysql, usethecreateindexstatement.1) forasinglecolumn, "createindexidx_lastnameonemployees (lastname);"2) foracompositeIndex를 사용하고 "createDexIdx_nameonemployees (forstName, FirstName);"3)을 사용하십시오

MySQL은 sqlite와 어떻게 다릅니 까?MySQL은 sqlite와 어떻게 다릅니 까?Apr 24, 2025 am 12:12 AM

MySQL과 Sqlite의 주요 차이점은 설계 개념 및 사용 시나리오입니다. 1. MySQL은 대규모 응용 프로그램 및 엔터프라이즈 수준의 솔루션에 적합하며 고성능 및 동시성을 지원합니다. 2. SQLITE는 모바일 애플리케이션 및 데스크탑 소프트웨어에 적합하며 가볍고 내부질이 쉽습니다.

MySQL의 색인이란 무엇이며 성능을 어떻게 향상 시키는가?MySQL의 색인이란 무엇이며 성능을 어떻게 향상 시키는가?Apr 24, 2025 am 12:09 AM

MySQL의 인덱스는 데이터 검색 속도를 높이는 데 사용되는 데이터베이스 테이블에서 하나 이상의 열의 주문 구조입니다. 1) 인덱스는 스캔 한 데이터의 양을 줄임으로써 쿼리 속도를 향상시킵니다. 2) B-Tree Index는 균형 잡힌 트리 구조를 사용하여 범위 쿼리 및 정렬에 적합합니다. 3) CreateIndex 문을 사용하여 CreateIndexIdx_customer_idonorders (customer_id)와 같은 인덱스를 작성하십시오. 4) Composite Indexes는 CreateIndexIdx_customer_orderOders (Customer_id, Order_Date)와 같은 다중 열 쿼리를 최적화 할 수 있습니다. 5) 설명을 사용하여 쿼리 계획을 분석하고 피하십시오

MySQL에서 트랜잭션을 사용하여 데이터 일관성을 보장하는 방법을 설명하십시오.MySQL에서 트랜잭션을 사용하여 데이터 일관성을 보장하는 방법을 설명하십시오.Apr 24, 2025 am 12:09 AM

MySQL에서 트랜잭션을 사용하면 데이터 일관성이 보장됩니다. 1) STARTTRANSACTION을 통해 트랜잭션을 시작한 다음 SQL 작업을 실행하고 커밋 또는 롤백으로 제출하십시오. 2) SavePoint를 사용하여 부분 롤백을 허용하는 저장 지점을 설정하십시오. 3) 성능 최적화 제안에는 트랜잭션 시간 단축, 대규모 쿼리 방지 및 격리 수준을 합리적으로 사용하는 것이 포함됩니다.

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

PhpStorm 맥 버전

PhpStorm 맥 버전

최신(2018.2.1) 전문 PHP 통합 개발 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 Linux 새 버전

SublimeText3 Linux 새 버전

SublimeText3 Linux 최신 버전

mPDF

mPDF

mPDF는 UTF-8로 인코딩된 HTML에서 PDF 파일을 생성할 수 있는 PHP 라이브러리입니다. 원저자인 Ian Back은 자신의 웹 사이트에서 "즉시" PDF 파일을 출력하고 다양한 언어를 처리하기 위해 mPDF를 작성했습니다. HTML2FPDF와 같은 원본 스크립트보다 유니코드 글꼴을 사용할 때 속도가 느리고 더 큰 파일을 생성하지만 CSS 스타일 등을 지원하고 많은 개선 사항이 있습니다. RTL(아랍어, 히브리어), CJK(중국어, 일본어, 한국어)를 포함한 거의 모든 언어를 지원합니다. 중첩된 블록 수준 요소(예: P, DIV)를 지원합니다.

Eclipse용 SAP NetWeaver 서버 어댑터

Eclipse용 SAP NetWeaver 서버 어댑터

Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.