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óaGiá 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ây2. 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
Bạn mới sử dụng TablePlus? .