Mysql hiển thị lịch sử truy vấn

Cách kiểm tra lịch sử truy vấn bàn làm việc MySql như Cảnh báo, Chọn, Xóa, v.v. - Hướng dẫn DBA MySQL

Cách kiểm tra lịch sử truy vấn bàn làm việc MySql như Cảnh báo, Chọn, Xóa, v.v.


giải thích cách bạn có thể kiểm tra lịch sử của các truy vấn bạn đã thực hiện trong bàn làm việc của MySQL cho Máy chủ MySQL. Thường thì chúng ta viết các truy vấn dài và chạy chúng trên MySQL Server và quên lưu chúng. Bàn làm việc của MySQL tiết kiệm cho chúng tôi những truy vấn mà chúng tôi chạy trên Máy chủ MySQL bằng cách sử dụng MySQL Workbench. Lịch sử sẽ được hiển thị theo ngày và giờ, thực sự giúp tìm ra truy vấn nào bạn đã thực hiện trên Máy chủ MySQL bằng cách sử dụng Workbench.


Hướng dẫn MySQL Workbench - Cách kiểm tra lịch sử Truy vấn trong MySQL Workbench


Gửi email nàyBlogThis. Chia sẻ lên TwitterChia sẻ lên FacebookChia sẻ lên Pinterest

Truy vấn cơ sở dữ liệu MySQL được thực thi hoặc thực hiện trong Bảng điều khiển lệnh MySQL có thể được truy xuất hoặc có thể được ghi lại. Trong bài viết này, mô tả liên quan đến cách lấy lệnh lịch sử Truy vấn SQL đã được thực thi hoặc thực hiện trước đó. Truy vấn được thực thi trong Bảng điều khiển lệnh MySQL thực sự được ghi lại hoặc được ghi trong một tệp có tên ‘. mysql_history'. Nó nằm trong thư mục chính của mỗi người dùng đã đăng nhập

Nói cách khác, nếu có một người dùng có tên 'myuser' đã đăng nhập vào một phiên đăng nhập nhất định được biểu thị bằng màn hình dấu nhắc bash và hơn nữa nếu có một lệnh được thực thi trong dấu nhắc bash để đăng nhập vào Máy chủ cơ sở dữ liệu MySQL, thì ngay sau khi một . mysql_history’ nằm trong thư mục chính của nó

Ví dụ: bên dưới là phiên của người dùng có tên 'myuser' và chính người dùng đó đang truy cập MySQL Command Console như hình bên dưới

myuser@hostname:~$ mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 16
Server version: 5.7.12-0ubuntu1.1 (Ubuntu)

Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
  
mysql> show status;
+-----------------------+-------+-----------+
| Variable_name         | Value |           |
+-----------------------+-------+-----------+
| Aborted_clients       | 0     |           |
| ..                   |       |           |
| Tc_log_max_pages_used | 0     |           | 
| Tc_log_page_size      | 0     |           | 
| Tc_log_page_waits     | 0     |           |
|..                    |       |           |
+-----------------------+-------+-----------+
358 rows in set (0,06 sec)

mysql> quit
Bye
myuser@hostname:~$

Sau khi thực hiện một truy vấn nhất định, chỉ cần kiểm tra tệp có tên ‘. mysql_history’ trong thư mục chính hoặc thư mục của người dùng như hình bên dưới

myuser@hostname:~$ ls -al | grep .mysql_history
-rw------- 1 myuser myuser 34449 Jul 16 17:52 .mysql_history
myuser@hostname:~$

Vì vậy, để chứng minh liệu truy vấn SQL được thực thi cuối cùng có đang được ghi lại hay nó đã được ghi trong tệp hay không. Chỉ cần xem nội dung của tệp bằng bất kỳ trình soạn thảo văn bản nào có sẵn hoặc được cung cấp trong hệ điều hành như hình bên dưới

myuser@hostname:~$ vim .mysql_history
myuser@hostname:~$ 

Dưới đây là nội dung trong tệp trình bày truy vấn SQL cuối cùng được thực thi trong MySQL Command Console

MySQL cho phép bạn kiểm tra các truy vấn được thực hiện bởi mỗi phiên. Từ những kết quả này, chúng tôi sẽ thực hiện truy vấn cuối cùng được thực hiện bởi một phiên cụ thể

Sự chuẩn bị

Trước tiên, bạn cần bật nhật ký truy vấn MySQL, bạn có thể thực hiện việc này bằng cách thực hiện các truy vấn sau

Đôi khi bạn cần theo dõi tất cả các truy vấn được gửi đến máy chủ MySQL trong một khoảng thời gian. Máy chủ MySQL cung cấp một cách để hiển thị nhật ký truy vấn chung và nhật ký truy vấn chậm, nếu các nhật ký đó được bật. Các đích có thể có của các mục nhật ký là các tệp nhật ký hoặc các bảng 

myuser@hostname:~$ ls -al | grep .mysql_history
-rw------- 1 myuser myuser 34449 Jul 16 17:52 .mysql_history
myuser@hostname:~$
3 và 
myuser@hostname:~$ ls -al | grep .mysql_history
-rw------- 1 myuser myuser 34449 Jul 16 17:52 .mysql_history
myuser@hostname:~$
4 trong cơ sở dữ liệu hệ thống 
myuser@hostname:~$ ls -al | grep .mysql_history
-rw------- 1 myuser myuser 34449 Jul 16 17:52 .mysql_history
myuser@hostname:~$
5

Trong bài đăng này, chúng tôi sẽ kích hoạt nhật ký chung và nhật ký truy vấn chậm và hiển thị chúng trong các bảng trong MySQL

1. Trước tiên, hãy kiểm tra xem bạn đã có sẵn hai bảng

myuser@hostname:~$ ls -al | grep .mysql_history
-rw------- 1 myuser myuser 34449 Jul 16 17:52 .mysql_history
myuser@hostname:~$
4 và
myuser@hostname:~$ ls -al | grep .mysql_history
-rw------- 1 myuser myuser 34449 Jul 16 17:52 .mysql_history
myuser@hostname:~$
3 trong cơ sở dữ liệu
myuser@hostname:~$ ls -al | grep .mysql_history
-rw------- 1 myuser myuser 34449 Jul 16 17:52 .mysql_history
myuser@hostname:~$
5 chưa

Nếu không, bạn phải tạo chúng, lưu ý rằng bạn phải tạo trong cơ sở dữ liệu 

myuser@hostname:~$ ls -al | grep .mysql_history
-rw------- 1 myuser myuser 34449 Jul 16 17:52 .mysql_history
myuser@hostname:~$
5

  • Để tạo bảng
    myuser@hostname:~$ ls -al | grep .mysql_history
    -rw------- 1 myuser myuser 34449 Jul 16 17:52 .mysql_history
    myuser@hostname:~$
    
    3

  CREATE TABLE `general_log` (
   `event_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP
                          ON UPDATE CURRENT_TIMESTAMP,
   `user_host` mediumtext NOT NULL,
   `thread_id` bigint(21) unsigned NOT NULL,
   `server_id` int(10) unsigned NOT NULL,
   `command_type` varchar(64) NOT NULL,
   `argument` mediumtext NOT NULL
  ) ENGINE=CSV DEFAULT CHARSET=utf8 COMMENT='General log'

Nhật ký truy vấn chung là bản ghi chung về những gì

  CREATE TABLE `slow_log` (
   `start_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP 
                          ON UPDATE CURRENT_TIMESTAMP,
   `user_host` mediumtext NOT NULL,
   `query_time` time NOT NULL,
   `lock_time` time NOT NULL,
   `rows_sent` int(11) NOT NULL,
   `rows_examined` int(11) NOT NULL,
   `db` varchar(512) NOT NULL,
   `last_insert_id` int(11) NOT NULL,
   `insert_id` int(11) NOT NULL,
   `server_id` int(10) unsigned NOT NULL,
   `sql_text` mediumtext NOT NULL,
   `thread_id` bigint(21) unsigned NOT NULL
  ) ENGINE=CSV DEFAULT CHARSET=utf8 COMMENT='Slow log'
3 đang làm. Máy chủ ghi thông tin vào nhật ký này khi máy khách kết nối hoặc ngắt kết nối và nó ghi lại từng câu lệnh SQL nhận được từ máy khách. Nhật ký truy vấn chung có thể rất hữu ích khi bạn nghi ngờ có lỗi ở một ứng dụng khách và muốn biết chính xác những gì ứng dụng đó đã gửi tới _______43

  • Và bảng
    myuser@hostname:~$ ls -al | grep .mysql_history
    -rw------- 1 myuser myuser 34449 Jul 16 17:52 .mysql_history
    myuser@hostname:~$
    
    4

  CREATE TABLE `slow_log` (
   `start_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP 
                          ON UPDATE CURRENT_TIMESTAMP,
   `user_host` mediumtext NOT NULL,
   `query_time` time NOT NULL,
   `lock_time` time NOT NULL,
   `rows_sent` int(11) NOT NULL,
   `rows_examined` int(11) NOT NULL,
   `db` varchar(512) NOT NULL,
   `last_insert_id` int(11) NOT NULL,
   `insert_id` int(11) NOT NULL,
   `server_id` int(10) unsigned NOT NULL,
   `sql_text` mediumtext NOT NULL,
   `thread_id` bigint(21) unsigned NOT NULL
  ) ENGINE=CSV DEFAULT CHARSET=utf8 COMMENT='Slow log'

Nhật ký truy vấn chậm bao gồm các câu lệnh SQL mất hơn

  CREATE TABLE `slow_log` (
   `start_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP 
                          ON UPDATE CURRENT_TIMESTAMP,
   `user_host` mediumtext NOT NULL,
   `query_time` time NOT NULL,
   `lock_time` time NOT NULL,
   `rows_sent` int(11) NOT NULL,
   `rows_examined` int(11) NOT NULL,
   `db` varchar(512) NOT NULL,
   `last_insert_id` int(11) NOT NULL,
   `insert_id` int(11) NOT NULL,
   `server_id` int(10) unsigned NOT NULL,
   `sql_text` mediumtext NOT NULL,
   `thread_id` bigint(21) unsigned NOT NULL
  ) ENGINE=CSV DEFAULT CHARSET=utf8 COMMENT='Slow log'
6 giây để thực thi và yêu cầu ở
  CREATE TABLE `slow_log` (
   `start_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP 
                          ON UPDATE CURRENT_TIMESTAMP,
   `user_host` mediumtext NOT NULL,
   `query_time` time NOT NULL,
   `lock_time` time NOT NULL,
   `rows_sent` int(11) NOT NULL,
   `rows_examined` int(11) NOT NULL,
   `db` varchar(512) NOT NULL,
   `last_insert_id` int(11) NOT NULL,
   `insert_id` int(11) NOT NULL,
   `server_id` int(10) unsigned NOT NULL,
   `sql_text` mediumtext NOT NULL,
   `thread_id` bigint(21) unsigned NOT NULL
  ) ENGINE=CSV DEFAULT CHARSET=utf8 COMMENT='Slow log'
7 hàng để được kiểm tra. Nhật ký truy vấn chậm có thể được sử dụng để tìm các truy vấn mất nhiều thời gian để thực thi và do đó là các ứng cử viên để tối ưu hóa

Giá trị tối thiểu và giá trị mặc định của 

  CREATE TABLE `slow_log` (
   `start_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP 
                          ON UPDATE CURRENT_TIMESTAMP,
   `user_host` mediumtext NOT NULL,
   `query_time` time NOT NULL,
   `lock_time` time NOT NULL,
   `rows_sent` int(11) NOT NULL,
   `rows_examined` int(11) NOT NULL,
   `db` varchar(512) NOT NULL,
   `last_insert_id` int(11) NOT NULL,
   `insert_id` int(11) NOT NULL,
   `server_id` int(10) unsigned NOT NULL,
   `sql_text` mediumtext NOT NULL,
   `thread_id` bigint(21) unsigned NOT NULL
  ) ENGINE=CSV DEFAULT CHARSET=utf8 COMMENT='Slow log'
6 lần lượt là 0 và 10. Giá trị có thể được chỉ định ở độ phân giải micro giây

2. Cho phép ghi nhật ký truy vấn trên cơ sở dữ liệu

myuser@hostname:~$ ls -al | grep .mysql_history
-rw------- 1 myuser myuser 34449 Jul 16 17:52 .mysql_history
myuser@hostname:~$
0

3. Bây giờ bạn có thể xem nhật ký bằng cách chạy truy vấn này

myuser@hostname:~$ ls -al | grep .mysql_history
-rw------- 1 myuser myuser 34449 Jul 16 17:52 .mysql_history
myuser@hostname:~$
1

4. Nếu bạn muốn tắt ghi nhật ký truy vấn trên cơ sở dữ liệu, hãy chạy truy vấn này

myuser@hostname:~$ ls -al | grep .mysql_history
-rw------- 1 myuser myuser 34449 Jul 16 17:52 .mysql_history
myuser@hostname:~$
2


Sử dụng TablePlus, bạn có thể bật nhật ký giao diện điều khiển từ GUI

Để bật/tắt nhật ký, bấm vào nút nhật ký bảng điều khiển gần trên cùng bên phải hoặc sử dụng phím tắt Cmd + Shift + C

Bạn cũng có thể chọn ghi nhật ký truy vấn dữ liệu, truy vấn meta hoặc tất cả truy vấn

Mysql hiển thị lịch sử truy vấn


Bạn mới sử dụng TablePlus? . 


Làm cách nào để xem lịch sử truy vấn trong MySQL?

Làm cách nào để hiển thị nhật ký truy vấn trong MySQL? .
Cho phép ghi nhật ký truy vấn trên cơ sở dữ liệu. SET toàn cầu general_log = 1;
Bây giờ bạn có thể xem nhật ký bằng cách chạy truy vấn này. CHỌN * TỪ mysql. chung_log;
Nếu bạn muốn tắt ghi nhật ký truy vấn trên cơ sở dữ liệu, hãy chạy truy vấn này. SET toàn cầu general_log = 0;

Làm cách nào tôi có thể xem truy vấn được thực hiện lần cuối trong MySQL?

10 câu trả lời .
Thực thi SET GLOBAL log_output = 'TABLE';
Thực thi SET GLOBAL general_log = 'ON';
Hãy nhìn vào bảng mysql. chung_log

Làm cách nào tôi có thể xem hoạt động của MySQL?

Để xem truy vấn nào đang chạy tích cực cho phiên bản Cơ sở dữ liệu MySQL trên Amazon RDS, hãy làm theo các bước sau. .
Kết nối với phiên bản DB đang chạy MySQL
Chạy lệnh sau. HIỂN THỊ ĐẦY ĐỦ QUY TRÌNH\G. .
Hoặc chạy truy vấn sau để truy xuất cùng một tập hợp kết quả

Có cách nào để xem các truy vấn MySQL trong quá khứ với PhpMyAdmin không?

Mở PhpMyAdmin và chọn cơ sở dữ liệu. Có tab bảng điều khiển ở cuối màn hình truy vấn SQL, hãy nhấp để mở và nhấp vào lịch sử . Nó sẽ hiển thị tất cả các bản ghi truy vấn. Ngoài phpMyAdmin, SQL có thể được sử dụng ở đâu?