Làm cách nào để bỏ qua lỗi với mysqldump?


12

Khi kết xuất cơ sở dữ liệu, tôi nhận được

mysqldump: Couldn't execute 'show create table `some_table`': execute command denied to user 'some_user'@'%' for routine 'some_routime' (1370)

và sau đó việc bán phá giá chỉ dừng lại.

Làm thế nào để tôi làm cho mysqldump tiếp tục khi nó gặp phải những vấn đề này? 10 phút của Google đã không cung cấp trợ giúp.

Đây là lệnh tôi đã sử dụng:

mysqldump -u username -h localhost --port=4406 -p --databases database_name --skip-lock-tables --force > database_name.sql

Câu trả lời:


27

người đàn ông mysqldump

-f, --force         Continue even if we get an sql-error.

Được rồi, tôi nghĩ rằng điều này là thất bại, nhưng rõ ràng nó đã làm việc. Kết xuất dường như đã kết thúc, nhưng các lỗi chỉ xảy ra ở cuối, do đó, nó làm cho nó giống như các lỗi làm cho kết xuất không thành công.
Chad Johnson

Anh ấy đã cung cấp tùy chọn - Force trong lệnh mà anh ấy đã chỉ cho chúng tôi.
Zoredache

1
xin lỗi đã không nhận ra.
chocriptple

1
@Chad Johnson, một người có thể lập luận rằng nếu bạn không thể có được bản sao lưu sạch mà không sử dụng - Force, thì bản sao lưu của bạn đã thất bại. Tùy chọn bắt buộc sẽ triệt tiêu các lỗi có thể quan trọng. Vui lòng không sử dụng - Force trong tập lệnh sao lưu mà bạn sẽ phụ thuộc vào.
Zoredache

Đây chỉ là để tôi có thể có được một cơ sở dữ liệu để làm việc với cục bộ. Không có gì quan trọng.
Chad Johnson

1

AFIAK, bạn không thể. Bạn cần có đủ đặc quyền để chạy mysqldump. Tại sao bạn không dành executeđặc quyền cho người dùng đang chạy?


2
Bởi vì công ty của tôi buộc tôi phải đi qua một bộ phận khác :(
Chad Johnson
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.