MySQL에서 명령 기록 가져오기

Mehvish Ashiq 2024년2월15일
  1. MySQL 명령 기록
  2. Windows 명령줄을 사용하여 MySQL에서 명령 기록 가져오기
  3. Windows에서 MySQL Workbench를 사용하여 MySQL 명령 기록 가져오기
  4. Ubuntu 터미널을 사용하여 MySQL 명령 기록 가져오기
MySQL에서 명령 기록 가져오기

이 문서에서는 실행한 MySQL 명령의 기록을 가져오는 Windows 및 Linux의 다양한 방법을 강조합니다.

MySQL 명령 기록

Windows 및 Linux(Ubuntu 20.04) 운영 체제를 사용하여 MySQL 명령 기록을 얻는 다양한 접근 방식에 대해 알아봅니다.

Windows OS의 경우 MySQL Workbench 및 Windows 명령줄(cmd 및 명령 프롬프트라고도 함)을 사용하여 파일 및 테이블 형식의 MySQL 명령 기록에 액세스합니다.

Linux OS의 경우 Linux 셸(터미널)을 사용하여 MySQL 명령 기록에 액세스합니다.

Windows 명령줄을 사용하여 MySQL에서 명령 기록 가져오기

여기서는 MySQL에서 명령 기록을 가져오는 세 가지 방법을 살펴보겠습니다.

표 형식으로 모든 MySQL 명령의 기록 가져오기

  1. Windows 명령줄을 열고 기본적으로 C:\Program Files\MySQL\MySQL Server 8.0\bin에 있는 MySQL bin 폴더로 이동합니다.

  2. 로그인 자격 증명을 사용하여 MySQL에 로그인합니다.

  3. 다음 두 쿼리를 실행하여 MySQL 쿼리 로그를 켜고 테이블 형식의 MySQL 명령 기록을 준비합니다.

    SET GLOBAL log_output = 'table';
    SET GLOBAL general_log = 'on';
    
  4. 다음 쿼리를 실행하여 실행된 MySQL 명령의 기록을 출력으로 가져옵니다.

    SELECT a.*, CONVERT(a.argument USING utf8) FROM mysql.general_log a;
    

위 쿼리에서 convert() 메서드를 사용하여 argument 필드의 16진수 값을 텍스트로 변환합니다. MySQL 버전 5.7 이상을 사용하여 16진수 값으로 argument 속성 값을 얻을 수도 있습니다.

명령줄의 공간이 제한되어 있으므로 다음과 같이 특정 필드를 선택합니다.

SELECT a.event_time,a.user_host, a.thread_id, a.server_id,
CONVERT(a.argument USING utf8) AS arugment
FROM mysql.general_log a LIMIT 10;

출력:

mysql 명령 내역 cmd

파일의 모든 MySQL 명령 기록 가져오기

이 방법은 이전 방법과 매우 유사합니다. MySQL에 로그인한 후 다음 쿼리만 실행하면 됩니다.

SET GLOBAL log_output = 'file';
SET GLOBAL general_log_file = "/yourPath/logfile.log";
SET GLOBAL general_log = 'on';

이제 지정된 경로에서 파일을 찾아 열어서 모든 세부 정보를 확인합니다. 일반적으로 filename.log 파일은 다음과 같습니다.

출력:

파일의 mysql 명령 기록 cmd

지정된 세션에 대해 마지막으로 실행된 MySQL 명령의 기록 가져오기

또한 특정 세션에 대해 다음 쿼리를 사용해야만 마지막으로 실행된 MySQL 명령을 찾을 수 있습니다. 여기에서 root에 대해 이 작업을 수행하고 명령줄의 제한된 공간으로 인해 두 개의 필드만 선택합니다.

SELECT a.event_time,CONVERT(a.argument USING utf8) AS arugment
FROM mysql.general_log a WHERE user_host LIKE 'root%'
ORDER BY a.event_time DESC LIMIT 1;

출력:

마지막 쿼리에 대한 mysql 명령 기록 cmd

Windows에서 MySQL Workbench를 사용하여 MySQL 명령 기록 가져오기

여기서도 MySQL 명령의 기록을 검색하는 세 가지 방법이 있습니다. 이러한 방법은 Windows 명령줄을 사용하여 설명한 것과 동일합니다. 하지만 이번에는 MySQL Workbench에서 실행할 것입니다.

표 형식으로 MySQL 명령 기록 가져오기

다음 쿼리를 실행하여 테이블 형식의 MySQL 명령 기록을 가져옵니다. 여기서 convert() 메서드는 argument 필드의 blob 값을 텍스트로 변환합니다.

MySQL 버전 5.7 이상을 사용하는 경우 Workbench에서 argument 속성의 값을 blob로 가져올 수도 있습니다.

SET GLOBAL log_output = 'table';
SET GLOBAL general_log = 'on';
SELECT a.*, CONVERT(a.argument USING utf8) FROM mysql.general_log a;

출력:

테이블의 mysql 명령 내역 워크벤치

쿼리를 작성하는 대신 기록 출력 옵션(다음 스크린샷에서 강조 표시됨)을 사용하여 명령 기록을 가져올 수 있습니다.

mysql 명령 내역 워크벤치 내역 옵션

하나의 파일 또는 여러 파일에서 MySQL 명령 기록 가져오기

지정된 경로에서 하나의 파일에 모든 기록을 가져올 수 있습니다.

SET GLOBAL log_output = 'file';
SET GLOBAL general_log_file = "/yourPath/logfile.log";
SET GLOBAL general_log = 'on';

C:\Users\DELL\AppData\Roaming\MySQL\Workbench\sql_history 위치로 이동하여 MySQL 명령 기록이 있는 모든 개별 파일을 볼 수도 있습니다.

마지막으로 실행한 쿼리에 대한 MySQL 명령 기록 가져오기

SELECT a.*,CONVERT(a.argument USING utf8) AS arugment
FROM mysql.general_log a WHERE user_host LIKE 'root%'
ORDER BY a.event_time DESC LIMIT 1;

출력:

마지막 쿼리에 대한 mysql 명령 내역 워크벤치

Ubuntu 터미널을 사용하여 MySQL 명령 기록 가져오기

슈퍼 유저로 로그인한 후 다음 명령을 실행하십시오.

cat ~/.mysql_history

출력:

우분투를 사용한 mysql 명령 내역 1부

다음 명령을 실행하여 공백을 제거하고 더 읽기 쉽게 만들 수 있습니다.

sed "s/\\\040/ /g" < ~/.mysql_history

출력:

우분투를 사용한 mysql 명령 기록 2부

Mehvish Ashiq avatar Mehvish Ashiq avatar

Mehvish Ashiq is a former Java Programmer and a Data Science enthusiast who leverages her expertise to help others to learn and grow by creating interesting, useful, and reader-friendly content in Computer Programming, Data Science, and Technology.

LinkedIn GitHub Facebook