Nếu khả năng LOCAL bị vô hiệu hóa, ở cả phía máy chủ hoặc máy khách, một ứng dụng khách cố gắng đưa ra câu lệnh TẢI DỮ LIỆU ĐỊA ĐIỂM sẽ nhận được thông báo lỗi sau:
ERROR 3950 (42000): Loading local data is disabled; this must be
enabled on both the client and server side
Tôi đã gặp vấn đề tương tự khi muốn tải tệp văn bản pet.txt vào bảng thú cưng theo hướng dẫn của Mysql: https://dev.mysql.com/doc/refman/8.0/en/loading-tables.html
Sau khi tìm kiếm trực tuyến, tôi đã sửa nó theo các bước sau:
- đặt các biến toàn cục bằng cách sử dụng lệnh này:
mysql> SET GLOBAL local_infile=1;
Query OK, 0 rows affected (0.00 sec)
- thoát khỏi máy chủ hiện tại:
mysql> quit
Bye
- kết nối với máy chủ bằng biến hệ thống trong tệp cục bộ:
mysql --local-infile=1 -u root -p1
Biến này kiểm soát khả năng LOCAL phía máy chủ cho các câu lệnh TẢI DỮ LIỆU. Tùy thuộc vào cài đặt local_infile, máy chủ từ chối hoặc cho phép tải dữ liệu cục bộ bởi các máy khách đã bật LOCAL ở phía máy khách. time or runtime), khởi động mysqld với local_infile đã tắt hoặc bật tương ứng. local_infile cũng có thể được đặt trong thời gian chạy.
- sử dụng Cơ sở dữ liệu của bạn và tải tệp vào bảng:
mysql> use menagerie
Database changed
mysql> load data local infile '/path/pet.txt' into table pet;
Query OK, 8 rows affected, 7 warnings (0.00 sec)
Nó có hoạt động không?
Tài liệu tham khảo:
https://dev.mysql.com /doc/refman/8.0/en/load-data-local-security.html https://dev.mysql.com /doc/refman/8.0/en/source-configuration-options.html#option_cmake_enabled_local_infile https://dev.mysql.com /doc/refman/8.0/en/server-system-variables.html#sysvar_local_infile