Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Hàm load_file không hoạt động trong mysql

Một đoạn trích ngắn từ tài liệu của LOAD_FILE() Hàm MySQL:

Như bạn có thể thấy, có vô số lý do khiến bạn gọi đến LOAD_FILE() không thành công:

  1. Tệp phải có trên máy tính có máy chủ MySQL chạy. Đây không phải lúc nào cũng giống máy tính chạy tập lệnh PHP (và điều này xảy ra vì lý do bảo mật). Nếu chúng chạy trên các máy tính khác nhau thì có lẽ bạn không thể sử dụng LOAD_FILE() . Trường hợp đã đóng.

    Về lý thuyết, bạn có thể sử dụng FTP hoặc SFTP để chuyển tệp trên máy tính có MySQL chạy nhưng vì lý do bảo mật tương tự, bạn có thể không có quyền truy cập vào máy tính đó.

  2. Giả sử trong trường hợp của bạn, cả PHP và MySQL đều chạy trên cùng một máy tính, /images/picture.jpg là thành phần đường dẫn của URL, không phải là đường dẫn trên hệ thống tệp. Bạn có thể sử dụng dirname() __DIR__ để soạn đường dẫn đến images thư mục bắt đầu từ đường dẫn của tập lệnh hiện tại.

  3. Người dùng bạn sử dụng để kết nối với máy chủ MySQL phải có FILE đặc ân. Đặc quyền được cấp cho người dùng bởi DBA.

  4. Tất cả đều phải đọc được tệp. Đây là phần dễ nhất. Khi bạn chạy ls -l trên tệp, ba ký hiệu cuối cùng trong cột quyền tệp phải là rw- hoặc r-- (không có điểm nào có bộ bit thực thi).

  5. Giá trị mặc định của max_allowed_packet biến hệ thống là 4 MiB nhưng một DBA có thể thay đổi nó. Bạn có thể chạy SELECT @@max_allowed_packet FROM dual để tìm ra giá trị hiện tại của nó.

  6. Nếu secure_file_priv biến hệ thống được đặt thì đường dẫn bạn cung cấp phải liên quan đến thư mục này. Một lần nữa, bạn có thể chạy SELECT @@secure_file_priv FROM dual để tìm giá trị hiện tại của nó.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. CakePHP - Tìm kiếm 3 bảng hiệu quả bằng cách sử dụng JOIN

  2. Phân vùng bảng cơ sở dữ liệu trong MySQL

  3. Điều gì sẽ ngăn tôi kết nối với máy chủ MySQL trên AWS RDS từ máy ảo AWS EC2?

  4. Làm thế nào để thực hiện một JOIN từ hai cột khác nhau đến cùng một cột trên một bảng riêng biệt

  5. PDO ::ERRMODE_EXCEPTION không chặn cảnh báo