쿼리 기록을 표시하는 SQL 명령


답변:


161

시험

 cat ~/.mysql_history

이것은 시스템에서 실행 된 모든 mysql 명령을 보여줍니다.


2
전부 는 아니지만 "password"와 같은 문자열을 포함하는 일부에 대해 억제가 발생합니다.
mckenzm

1
또한 일반적으로 개방형 MySQL CLI로 최신 상태가 아니므로 exitMySQL을 사용하고 파일을 읽어야 할 가능성이 높습니다 .
Joel Mellon

1
로그인 한 사용자가 실행 한 명령 만 표시됩니다.
Christia

1
창에서이 작업을 수행하는 방법
ßiansor Å. Ålmerol

다른 명령이 억제되거나 순서가 지정되지 않았을 가능성이 있습니까? 그리고 로그는 실시간으로 자체 업데이트합니까?
Drubio

32

MySQL> 5.1.11 또는 MariaDB의 경우

  1. SET GLOBAL log_output = 'TABLE';
  2. SET GLOBAL general_log = 'ON';
  3. 테이블을보세요 mysql.general_log

로그 파일로 출력하려면 다음을 수행하십시오.

  1. SET GLOBAL log_output = "FILE";
  2. SET GLOBAL general_log_file = "/path/to/your/logfile.log"
  3. SET GLOBAL general_log = 'ON';

jeffmjack이 주석에서 언급했듯이, 구성 파일을 편집하지 않는 한 (예 : 편집 /etc/mysql/my.cnf한 다음 다시 시작하여 변경 사항을 적용) 이러한 설정은 다음 세션 전에 삭제 됩니다.

이제 원하는 경우 tail -f /var/log/mysql/mysql.log

여기에 더 많은 정보 : 서버 시스템 변수


3
위 내용에 대한 설명 : 여기에서 복사-붙여 넣기 명령은 MySQL의 단일 세션을위한 것입니다. 예를 들어 대화 형 MySQL 명령 줄에서 입력 할 수 있습니다. MySQL 인스턴스의 영구 기능이되도록하려면 해당 명령을 /etc/mysql/my.cnf에 넣고 MySQL 서비스를 다시 시작해야합니다.
jeffmjack

또한가 /path/to/your/logfile.log삭제되면 SET GLOBAL general_log_file = "/path/to/your/logfile.log";다시 실행할 때까지 로깅이 중지됩니다 (또는 구성을 편집 한 경우 세션을 다시 시작 하시겠습니까?).
Skippy le Grand Gourou

21

(Linux) 터미널을 열고 ctrl+alt+t 명령을 실행하십시오.

 cat ~/.mysql_history

이전 mysql 쿼리 기록을 모두 얻을 수 있습니다. :)


18

거기에서 찾을 수 있습니다.

~/.mysql_history

다음과 같이 이스케이프없이 읽을 수있게됩니다.

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

2

~/.myslgui/query-browser/history.xml 여기 에서 mysql_query_browser (몇 일 전)으로 만든 마지막 쿼리를 찾을 수 있습니다.


0

~ / .mysql_history에서 이력을 볼 수 있습니다. 그러나 파일의 내용은 wctomb로 인코딩됩니다. 콘텐츠를 보려면 :

쉘> 고양이 ~ / .mysql_history | python2.7 -c "import sys; print ( ''. join ([l.decode ( 'unicode-escape') for l in sys.stdin]))"

출처 : 명령 줄에서 MySQL 쿼리 기록 확인


-1

쿼리 캐시 ( http://www.databasejournal.com/features/mysql/article.php/3110171/MySQLs-Query-Cache.htm)를 볼 수 있지만 실제 쿼리에 대한 액세스 권한을 제공하지 않을 수 있습니다. 그것이 작동한다면 뺑소니 (미묘한 말장난 의도)

그러나 MySQL Query Browser는 MySQL 엔진 외부에서 실행되는 자체 쿼리 목록을 유지할 가능성이 높습니다. 앱에서 동일한 작업을 수행해야합니다.

편집 : 이것으로 이어지는 dan m의 주석을보십시오 : MySQL에서 실행 된 마지막 쿼리를 표시하는 방법? 소리가납니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.