2010-01-25 38 views
5

Tôi đã thiết lập một tệp nhật ký để nhận các truy vấn chậm của MySQL.Làm cách nào để khắc phục "perl không được nhận dạng" trên Windows?

Tuy nhiên, tôi không thể phân tích cú pháp tệp. Linux làm cho nhiệm vụ này có vẻ rất đơn giản. Trong hướng dẫn có vẻ như dễ dàng như:

$ mysqldumpslow -s c -t 10 

Trong Windows tuy nhiên, tôi không chắc chắn làm thế nào bạn chạy Perl, tọa lạc tại: G: \ xampp \ perl \ bin với Perl Script mysqldumpslow.pl, tọa lạc tại: G: \ xampp \ mysql \ scripts

tôi đã cố gắng để nhập:

G: \ xampp \ mysql \ scripts \ perl mysqldumpslow -sc -t 10

Dấu nhắc lệnh trả về nội dung như "perl không được nhận dạng".

+1

bạn đã thử 'G: \ xampp \ mysql \ scripts \ perl.exe'? –

Trả lời

6

Errm, bạn đang sử dụng đường dẫn sai.

Nếu perl.exe tọa lạc tại G: \ xampp \ perl \ bin và kịch bản mysql trong G: \ xampp \ mysql \ scripts, bạn cần:

> G:\xampp\perl\bin\perl G:\xampp\mysql\scripts\mysqldumpslow.pl -s c -t 10. 

Tất nhiên, đó là một vòng xoay rất cách làm việc, vì vậy thay vào đó, thêm perl để PATH của bạn, và cd vào thư mục chính xác và sau đó chạy nó:

> set PATH=G:\xampp\perl\bin\;%PATH% // Note: This can be added in the 
             // System Control Panel. 
> cd /d G:\xampp\mysql\scripts 
> perl mysqldumpslow.pl -s c -t 10 

Hoặc thậm chí tốt hơn, thêm perl để loại file được biết đến bạn.

  1. Đi tới Explorer -> Công cụ -> Thư mục Tùy chọn -> Loại tệp.
  2. Nhấp vào 'Mới', nhập pl cho trường mở rộng . Nhấp vào Ok.
  3. Tìm PL trong danh sách của bạn, nhấp vào Nâng cao. Trong Hành động, nhấp vào 'Mới'.
  4. Đối với hành động kiểu open, cho 'Ứng dụng sử dụng để thực hiện hành động' loại:

    G:\xampp\perl\bin\perl.exe -w "%1" %*

  5. Bấm Ok.

Bây giờ bạn chỉ có thể chạy các script như:

> mysqldumpslow.pl -s c -t 10 

Như bạn sẽ trong Linux.

nhanh lưu ý: Add file .pl như các loại tập tin được gọi là tương đương với người Unix thêm

#!/usr/bin/perl -w 

khi bắt đầu mỗi kịch bản perl. Trong Windows, bạn chỉ cần thêm nó một lần.

Lưu ý thứ hai: -w bật Cảnh báo trong trình thông dịch perl.Bạn có thể bỏ qua số -w nếu muốn.

+0

Bất kỳ ý tưởng nào về lỗi này có nghĩa là gì? "Không thể định vị strict.pm trong @INC (INC chứa:.) Trên dòng 8." Dòng 8 đọc "sử dụng nghiêm ngặt". – rrrfusco

+0

Không thể tải mô-đun perl 'strict.pm'. '@ INC' là nơi perl tìm kiếm các mô-đun. Hiện tại, thư mục của bạn được đặt thành thư mục hiện tại, '.'. Xem http://www.wellho.net/mouth/588_Changing-INC-where-Perl-loads-its-modules.html để biết thêm thông tin hoặc hỏi một câu hỏi mới, riêng biệt. –

+0

Tôi đã đăng một câu hỏi khác tại đây: http://stackoverflow.com/questions/2185762/how-do-i-read-this-perl-script-with-windows-shell – rrrfusco

0

nếu thông dịch Perl perl.exe của bạn nằm ở G:\xampp\perl\bin, sau đó sử dụng G:\xampp\perl\bin\perl.exe. Để thuận tiện gọi cho trình thông dịch Perl của bạn từ bất cứ đâu, bạn có thể thêm đường dẫn G:\xampp\perl\bin vào biến môi trường PATH của bạn. Để gọi kịch bản Perl của bạn, hãy thử này

c:\> G:\xampp\perl\bin\perl.exe G:\xampp\mysql\scripts\mysqldumpslow.pl 
1

tôi sửa lại lỗi này bằng cách sử dụng lệnh:

set PATH=C:\perl\bin;%PATH% 
Các vấn đề liên quan