Vô hiệu hóa đầu ra giao diện điều khiển khi thực hiện tệp SQL bằng lệnh nguồn MySQL


8

Tôi bắt đầu bằng cách khởi chạy công cụ dòng lệnh MySQL:

mysql --user=myusername --password=mypassword --silent --force -b

-bTùy chọn cuối cùng được sử dụng để tắt tiếng bíp khi có lỗi.

Sau đó, tôi chọn một cơ sở dữ liệu:

use Mydatabasename;

Sau đó, tôi thực thi SQL tạo thành một tệp như thế này:

source c:\x\y\z\myfile.sql

Đó là khi mọi thứ đi chậm. Tôi đã thực hiện một phần của tệp trước đó để bảng điều khiển chứa đầy lỗi hàng trùng lặp làm chậm quá trình thực thi. Tôi nhận được 5-10 câu lệnh được thực thi mỗi giây. Không có hàng trùng lặp, mã thực thi hàng chục nghìn câu lệnh (30k +) cứ sau 5 giây.

Tôi cần phải làm điều này vì tệp lớn và tôi không thể thực hiện nó trong một lần.

Câu trả lời:


10

Đây là vấn đề. HĐH có hai chế độ để in mọi thứ

  • xuất sắc
  • stderr

Các --silent chỉ ảnh hưởng đến stdout. Làm thế nào để bạn móng tay stderr?

Hãy thử một trong những điều sau đây và xem nó có hoạt động không:

mysql --user=myusername --password=mypassword --silent --force -b 2> nul
mysql --user=myusername --password=mypassword --silent --force -b --tee=nul

Hãy thử một lần !!!

CAVEAT: Tôi đã xử lý vấn đề này trước đây khi trả lời câu hỏi về mysqldump: Làm thế nào để ghi nhật ký đầu ra từ mysqldump?


"2> nul" có nghĩa là chuyển hướng luồng đầu ra thứ hai (stderr) sang không? Tôi vừa thực hiện kịch bản lớn của mình và tôi nghĩ nó vẫn đang trải qua các bản sao (không sử dụng im lặng chỉ 2> nul). Tôi nghĩ rằng tôi sẽ cần phải chia tập tin nguồn ... Rất cám ơn.
Mzn

1
Có, đầu ra để NULviết hoàn toàn không có gì. Bạn có thể làm 2>stderr.txtnếu bạn muốn.
RolandoMySQLDBA
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.