Đăng nhập Windows MySQL

Nhật ký truy vấn chung là một bản ghi chung về những gì Máy chủ MySQL đang làm. Nó 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, bao gồm cả những lần thử đăng nhập không thành công thường cho thấy các nỗ lực vũ phu

RdpGuard sử dụng nhật ký truy vấn chung để phát hiện các lần đăng nhập không thành công vào Máy chủ MySQL

Nhật ký truy vấn chung bị tắt theo mặc định và bạn cần bật nó để phát hiện và chặn các cuộc tấn công vũ phu trên máy chủ MySQL của bạn. Dưới đây bạn sẽ tìm thấy hướng dẫn chi tiết về cách bật ghi nhật ký chung


Dưới đây chúng tôi sẽ mô tả cách bật ghi nhật ký chung thông qua MySQL Workbench. Nếu bạn chưa cài đặt MySQL Workbench, bạn có thể tải xuống từ đây - https. //mysql. com/products/bàn làm việc/

1. Khởi động MySQL Workbench và mở phiên bản của bạn

Khởi động MySQL Workbench và mở phiên bản của bạn

2. Mở danh mục Tệp tùy chọn

Mở danh mục Tệp tùy chọn

3. Mở tab Ghi nhật ký

4. Kiểm tra các hộp kiểm sau

  • nhật ký chung
  • chung_log_file
  • đầu ra nhật ký [vui lòng đảm bảo rằng nó được đặt thành TẬP TIN]

5. Nhấp vào Áp dụng để lưu thay đổi

Nhấp vào Áp dụng để lưu thay đổi

6. Đóng MySQL Workbench và khởi động lại Dịch vụ RdpGuard


1. Bắt đầu trình soạn thảo văn bản yêu thích của bạn [hoặc Notepad] và mở. ini [hoặc của tôi. tập tin cnf]

Mở tệp cấu hình MySQL trong trình soạn thảo văn bản

Đường dẫn phổ biến nhất là %PROGRAMDATA%\MySQL\MySQL Server x. x\của tôi. ini [trong đó x. x là phiên bản Máy chủ MySQL]. Bạn có thể tìm thêm chi tiết về vị trí tệp cấu hình MySQL tại đây. https. // nhà phát triển. mysql. com/doc/refman/5. 1/vi/tệp tùy chọn. html

Tất cả các bản ghi có thể được tìm thấy trong thư mục dữ liệu mysqld. Bạn có thể buộc mysqld mở lại tệp nhật ký [hoặc trong một số trường hợp chuyển sang nhật ký mới] bằng cách thực hiện FLUSH LOGS. Xem Phần 4. 5. 3

mysqld ghi tất cả các lỗi vào thiết bị xuất chuẩn, mà tập lệnh safe_mysqld chuyển hướng đến một tệp có tên 'tên máy chủ'. sai lầm. [Trên Windows, mysqld ghi trực tiếp điều này vào \mysql\data\mysql.err. ]

Điều này chứa thông tin cho biết thời điểm mysqld được bắt đầu và dừng cũng như bất kỳ lỗi nghiêm trọng nào được tìm thấy khi chạy. Nếu mysqld chết đột ngột và safe_mysqld cần khởi động lại mysqld, safe_mysqld sẽ ghi một hàng mysqld đã khởi động lại trong tệp này. Nhật ký này cũng chứa một cảnh báo nếu mysqld nhận thấy một bảng cần được tự động kiểm tra hoặc sửa chữa

Trên một số hệ điều hành, nhật ký lỗi sẽ chứa dấu vết ngăn xếp có thể được sử dụng để tìm ra nơi mysqld chết. Xem Phần D. 1. 4

Nếu bạn muốn biết điều gì xảy ra trong mysqld, bạn nên bắt đầu với --log[=file]. Thao tác này sẽ ghi nhật ký tất cả các kết nối và truy vấn vào tệp nhật ký [theo mặc định có tên là 'hostname'.log]. Nhật ký này có thể rất hữu ích khi bạn nghi ngờ có lỗi trong máy khách và muốn biết chính xác những gì mysqld nghĩ rằng máy khách đã gửi cho nó

Theo mặc định, mysql. tập lệnh máy chủ khởi động máy chủ MySQL với tùy chọn -l. Nếu bạn cần hiệu suất tốt hơn khi bắt đầu sử dụng MySQL trong môi trường sản xuất, bạn có thể xóa tùy chọn -l khỏi mysql. máy chủ hoặc thay đổi nó thành --log-bin

Các mục trong nhật ký này được viết khi mysqld nhận được câu hỏi. Điều này có thể khác với thứ tự thực hiện các câu lệnh. Điều này trái ngược với nhật ký cập nhật và nhật ký nhị phân được ghi sau khi truy vấn được thực hiện nhưng trước khi bất kỳ khóa nào được giải phóng

Ghi chú. nhật ký cập nhật được thay thế bằng nhật ký nhị phân. Xem Phần 4. 9. 4. Với điều này, bạn có thể làm bất cứ điều gì bạn có thể làm với nhật ký cập nhật

Khi bắt đầu với tùy chọn --log-update[=file_name], mysqld ghi một tệp nhật ký chứa tất cả các lệnh SQL cập nhật dữ liệu. Nếu không có tên tệp, nó sẽ mặc định là tên của máy chủ. Nếu một tên tệp được cung cấp, nhưng nó không chứa đường dẫn, thì tệp được ghi trong thư mục dữ liệu. Nếu file_name không có phần mở rộng, mysqld sẽ tạo tên tệp nhật ký như vậy. file_name.###, trong đó ### là một số được tăng lên mỗi khi bạn thực hiện làm mới mysqladmin, thực thi nhật ký xóa mysqladmin, thực thi câu lệnh FLUSH LOGS hoặc khởi động lại máy chủ

Ghi chú. Để sơ đồ trước hoạt động, bạn không được tạo các tệp của riêng mình có cùng tên tệp với nhật ký cập nhật + một số phần mở rộng có thể được coi là một số, trong thư mục được sử dụng bởi nhật ký cập nhật

Nếu bạn sử dụng các tùy chọn --log hoặc -l, mysqld sẽ ghi nhật ký chung với tên tệp là hostname.log. Khởi động lại và làm mới không tạo ra tệp nhật ký mới [mặc dù nó đã được đóng và mở lại]. Trong trường hợp này, bạn có thể sao chép nó [trên Unix] bằng cách thực hiện

mv hostname.log hostname-old.log
mysqladmin flush-logs
cp hostname-old.log to-backup-directory
rm hostname-old.log

Ghi nhật ký cập nhật là thông minh vì nó chỉ ghi nhật ký các câu lệnh thực sự cập nhật dữ liệu. Vì vậy, một CẬP NHẬT hoặc XÓA với WHERE không tìm thấy hàng nào sẽ không được ghi vào nhật ký. Nó thậm chí còn bỏ qua các câu lệnh CẬP NHẬT đặt một cột thành giá trị mà nó đã có

Việc ghi nhật ký cập nhật được thực hiện ngay sau khi truy vấn hoàn tất nhưng trước khi bất kỳ khóa nào được giải phóng hoặc bất kỳ cam kết nào được thực hiện. Điều này đảm bảo rằng nhật ký sẽ được ghi theo thứ tự thực hiện

Nếu bạn muốn cập nhật cơ sở dữ liệu từ tệp nhật ký cập nhật, bạn có thể làm như sau [giả sử nhật ký cập nhật của bạn có tên dạng file_name.###]

shell> ls -1 -t -r file_name.[0-9]* | xargs cat | mysql

ls được sử dụng để lấy tất cả các tệp nhật ký theo đúng thứ tự

Điều này có thể hữu ích nếu bạn phải hoàn nguyên các tệp sao lưu sau sự cố và bạn muốn thực hiện lại các bản cập nhật đã xảy ra giữa thời điểm sao lưu và sự cố

Mục đích là nhật ký nhị phân sẽ thay thế nhật ký cập nhật, vì vậy chúng tôi khuyên bạn nên chuyển sang định dạng nhật ký này càng sớm càng tốt

Nhật ký nhị phân chứa tất cả thông tin có sẵn trong nhật ký cập nhật ở định dạng hiệu quả hơn. Nó cũng chứa thông tin về thời gian mỗi truy vấn cập nhật cơ sở dữ liệu

Nhật ký nhị phân cũng được sử dụng khi bạn sao chép một nô lệ từ một chủ. Xem Phần 4. 10

Khi bắt đầu với tùy chọn --log-bin[=file_name], mysqld ghi một tệp nhật ký chứa tất cả các lệnh SQL cập nhật dữ liệu. Nếu không có tên tệp nào được cung cấp, nó sẽ mặc định là tên của máy chủ, theo sau là -bin. Nếu một tên tệp được cung cấp, nhưng nó không chứa đường dẫn, thì tệp được ghi trong thư mục dữ liệu

Nếu bạn cung cấp phần mở rộng cho --log-bin=filename. tiện ích mở rộng, tiện ích mở rộng sẽ bị xóa âm thầm

Đối với tên tệp nhật ký nhị phân, mysqld sẽ nối thêm phần mở rộng là một số được tăng lên mỗi khi bạn thực hiện làm mới mysqladmin, thực thi nhật ký xóa mysqladmin, thực thi câu lệnh FLUSH LOGS hoặc khởi động lại máy chủ. Nhật ký nhị phân mới cũng sẽ tự động được tạo khi đạt đến max_bin_log_size. Bạn có thể xóa tất cả các tệp nhật ký nhị phân không hoạt động bằng lệnh RESET MASTER. Xem Phần 4. 5. 4

Bạn có thể sử dụng các tùy chọn sau để mysqld tác động đến nội dung được ghi vào nhật ký nhị phân

Quyền mua

Sự miêu tả

binlog-do-db=database_name

Báo cho chủ biết rằng nó sẽ ghi nhật ký cập nhật cho cơ sở dữ liệu đã chỉ định và loại trừ tất cả những thứ khác không được đề cập rõ ràng. [Thí dụ. binlog-do-db=some_database. ]

binlog-ignore-db=database_name

Nói với chủ rằng các bản cập nhật cho cơ sở dữ liệu nhất định không được ghi vào nhật ký nhị phân. [Thí dụ. binlog-ignore-db=some_database. ]

Để xác định các tệp nhật ký nhị phân khác nhau đã được sử dụng, mysqld cũng sẽ tạo một tệp chỉ mục nhật ký nhị phân chứa tên của tất cả các tệp nhật ký nhị phân đã sử dụng. Theo mặc định, tệp này có cùng tên với tệp nhật ký nhị phân, với phần mở rộng '. mục lục'. Bạn có thể thay đổi tên của tệp chỉ mục nhật ký nhị phân bằng tùy chọn --log-bin-index=[filename]

Nếu bạn đang sử dụng bản sao, bạn không nên xóa các tệp nhật ký nhị phân cũ cho đến khi bạn chắc chắn rằng không có nô lệ nào cần sử dụng chúng. Một cách để làm điều này là thực hiện nhật ký xóa mysqladmin mỗi ngày một lần và sau đó xóa bất kỳ nhật ký nào cũ hơn 3 ngày

Bạn có thể kiểm tra tệp nhật ký nhị phân bằng lệnh mysqlbinlog. Ví dụ: bạn có thể cập nhật máy chủ MySQL từ nhật ký nhị phân như sau

mysqlbinlog log-file | mysql -h server_name

Bạn cũng có thể sử dụng chương trình mysqlbinlog để đọc nhật ký nhị phân trực tiếp từ máy chủ MySQL từ xa

mysqlbinlog --help sẽ cung cấp cho bạn thêm thông tin về cách sử dụng chương trình này

Nếu bạn đang sử dụng BEGIN [WORK] hoặc SET AUTOCOMMIT=0, bạn phải sử dụng nhật ký nhị phân MySQL để sao lưu thay vì nhật ký cập nhật cũ

Việc ghi nhật ký nhị phân được thực hiện ngay sau khi truy vấn hoàn tất nhưng trước khi bất kỳ khóa nào được giải phóng hoặc bất kỳ cam kết nào được thực hiện. Điều này đảm bảo rằng nhật ký sẽ được ghi theo thứ tự thực hiện

Tất cả các bản cập nhật [CẬP NHẬT, XÓA hoặc CHÈN] thay đổi bảng giao dịch [như bảng BDB] được lưu vào bộ đệm cho đến khi CAM KẾT. Mọi cập nhật đối với bảng không giao dịch được lưu trữ trong nhật ký nhị phân cùng một lúc. Khi bắt đầu, mọi luồng sẽ phân bổ bộ đệm binlog_cache_size cho các truy vấn bộ đệm. Nếu một truy vấn lớn hơn mức này, chuỗi sẽ mở một tệp tạm thời để xử lý bộ đệm lớn hơn. Tệp tạm thời sẽ bị xóa khi chủ đề kết thúc

Max_binlog_cache_size có thể được sử dụng để hạn chế tổng kích thước được sử dụng để lưu vào bộ đệm một truy vấn nhiều giao dịch

Nếu bạn đang sử dụng bản cập nhật hoặc nhật ký nhị phân, các phần chèn đồng thời sẽ không hoạt động cùng với CREATE. CHÈN và CHÈN. LỰA CHỌN. Điều này là để đảm bảo rằng bạn có thể tạo lại một bản sao chính xác của các bảng của mình bằng cách áp dụng nhật ký trên bản sao lưu

Khi bắt đầu với tùy chọn --log-slow-queries[=file_name], mysqld ghi một tệp nhật ký chứa tất cả các lệnh SQL mất hơn long_query_time để thực thi. Thời gian để có được các khóa bảng ban đầu không được tính là thời gian thực hiện

Nhật ký truy vấn chậm được ghi lại sau khi thực hiện truy vấn và sau khi tất cả các khóa đã được giải phóng. Điều này có thể khác với thứ tự thực hiện các câu lệnh

Nếu không có tên tệp nào được cung cấp, nó sẽ mặc định là tên của máy chủ có hậu tố -slow. đăng nhập. Nếu tên tệp được cung cấp, nhưng không chứa đường dẫn, tệp được ghi trong thư mục dữ liệu

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 hiện và do đó là các ứng cử viên để tối ưu hóa. Với một khúc gỗ lớn, điều đó có thể trở thành một nhiệm vụ khó khăn. Bạn có thể chuyển nhật ký truy vấn chậm thông qua lệnh mysqldumpslow để nhận bản tóm tắt các truy vấn xuất hiện trong nhật ký

Nếu bạn đang sử dụng --log-long-format, các truy vấn không sử dụng chỉ mục cũng được in. Xem Phần 4. 1. 1

MySQL có rất nhiều tệp nhật ký, giúp dễ dàng xem những gì đang diễn ra. Xem Phần 4. 9. Tuy nhiên, thỉnh thoảng người ta phải dọn dẹp sau MySQL để đảm bảo rằng nhật ký không chiếm quá nhiều dung lượng đĩa

Khi sử dụng MySQL với các tệp nhật ký, đôi khi bạn sẽ muốn xóa/sao lưu các tệp nhật ký cũ và yêu cầu MySQL bắt đầu đăng nhập vào các tệp mới. Xem Phần 4. 4. 1

Trên bản cài đặt Linux [RedHat], bạn có thể sử dụng tập lệnh mysql-log-rotate cho việc này. Nếu bạn đã cài đặt MySQL từ bản phân phối RPM, tập lệnh sẽ được cài đặt tự động. Lưu ý rằng bạn nên cẩn thận với điều này nếu bạn đang sử dụng nhật ký để sao chép

Trên các hệ thống khác, bạn phải tự cài đặt một tập lệnh ngắn mà bạn bắt đầu từ cron để xử lý các tệp nhật ký

Bạn có thể buộc MySQL bắt đầu sử dụng các tệp nhật ký mới bằng cách sử dụng nhật ký xóa mysqladmin hoặc bằng cách sử dụng lệnh SQL FLUSH LOGS. Nếu bạn đang sử dụng MySQL Phiên bản 3. 21 bạn phải sử dụng làm mới mysqladmin

Lệnh trước thực hiện như sau

  • Nếu ghi nhật ký tiêu chuẩn [--log] hoặc ghi nhật ký truy vấn chậm [--log-slow-queries] được sử dụng, thì nó sẽ đóng và mở lại tệp nhật ký [

    shell> ls -1 -t -r file_name.[0-9]* | xargs cat | mysql
    0 và
    shell> ls -1 -t -r file_name.[0-9]* | xargs cat | mysql
    1 làm mặc định]

  • Nếu sử dụng nhật ký cập nhật [--log-update], nó sẽ đóng nhật ký cập nhật và mở một tệp nhật ký mới với số thứ tự cao hơn

Nếu bạn chỉ sử dụng nhật ký cập nhật, bạn chỉ cần xóa nhật ký rồi chuyển các tệp nhật ký cập nhật cũ sang bản sao lưu. Nếu bạn đang sử dụng ghi nhật ký bình thường, bạn có thể làm điều gì đó như

Đăng nhập MySQL ở đâu trong Windows?

Vị trí mặc định cho mỗi nhật ký là thư mục Dữ liệu MySQL [ C. \ProgramData\MySQL\MySQL Server [số phiên bản]\Data\] và tên nhật ký mặc định dựa trên tên thiết bị của máy tính.

Làm cách nào để kiểm tra nhật ký của MySQL?

Trên các hệ thống Ubuntu, vị trí mặc định cho MySQL là /var/log/mysql/error. đăng nhập. Trong nhiều trường hợp, các bản ghi lỗi được đọc dễ dàng nhất với chương trình less, một tiện ích dòng lệnh cho phép bạn xem các tệp nhưng không chỉnh sửa chúng. sudo less /var/log/mysql/error .

Làm cách nào để đăng nhập MySQL?

Nhập mysql. exe -uroot -p và MySQL sẽ khởi chạy bằng người dùng root. MySQL sẽ nhắc bạn nhập mật khẩu của bạn. Nhập mật khẩu từ tài khoản người dùng mà bạn đã chỉ định bằng thẻ –u và bạn sẽ kết nối với máy chủ MySQL.

Làm cách nào để lưu trữ nhật ký trong MySQL?

Bật đăng nhập trên MySQL . mysql> hiển thị các biến; Nếu các biến như general_log và slow_query_log TẮT, chúng ta cần bật chúng lên. Bạn có thể bật nhật ký truy vấn chung bằng lệnh sau.

Chủ Đề