Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Kode Kesalahan:1290. Server MySQL berjalan dengan opsi --secure-file-priv sehingga tidak dapat menjalankan pernyataan ini

Jawaban cepat, yang tidak mengharuskan Anda untuk mengedit file konfigurasi apa pun (dan berfungsi pada sistem operasi lain serta Windows), adalah dengan menemukan direktori yang diizinkan untuk Anda simpan untuk digunakan:

mysql> SHOW VARIABLES LIKE "secure_file_priv";
+------------------+-----------------------+
| Variable_name    | Value                 |
+------------------+-----------------------+
| secure_file_priv | /var/lib/mysql-files/ |
+------------------+-----------------------+
1 row in set (0.06 sec)

Dan kemudian pastikan Anda menggunakan direktori itu di SELECT . Anda pernyataan INTO OUTFILE klausa:

SELECT *
FROM xxxx
WHERE XXX
INTO OUTFILE '/var/lib/mysql-files/report.csv'
    FIELDS TERMINATED BY '#'
    ENCLOSED BY '"'
    LINES TERMINATED BY '\n'

Jawaban asli

Saya mengalami masalah yang sama sejak memutakhirkan dari MySQL 5.6.25 ke 5.6.26.

Dalam kasus saya (di Windows), melihat layanan MySQL56 Windows menunjukkan kepada saya bahwa file opsi/pengaturan yang digunakan saat layanan dimulai adalah C:\ProgramData\MySQL\MySQL Server 5.6\my.ini

Di linux dua lokasi yang paling umum adalah /etc/my.cnf atau /etc/mysql/my.cnf .

Membuka file ini saya dapat melihat bahwa secure-file-priv opsi telah ditambahkan di bawah [mysqld] grup dalam versi baru Server MySQL ini dengan nilai default:

secure-file-priv="C:/ProgramData/MySQL/MySQL Server 5.6/Uploads"

Anda dapat mengomentari ini (jika Anda berada di lingkungan non-produksi), atau bereksperimen dengan mengubah pengaturan (baru-baru ini saya harus mengatur secure-file-priv = "" untuk menonaktifkan default). Jangan lupa untuk memulai ulang layanan setelah melakukan perubahan.

Atau, Anda dapat mencoba menyimpan hasil Anda ke dalam folder yang diizinkan (lokasinya dapat bervariasi tergantung pada instalasi Anda):

SELECT *
FROM xxxx
WHERE XXX
INTO OUTFILE 'C:/ProgramData/MySQL/MySQL Server 5.6/Uploads/report.csv'
    FIELDS TERMINATED BY '#'
    ENCLOSED BY '"'
    LINES TERMINATED BY '\n'

Lebih umum untuk memiliki nilai yang dipisahkan koma menggunakan FIELDS TERMINATED BY ',' . Lihat di bawah untuk contoh (juga menunjukkan jalur Linux):

SELECT *
FROM table
INTO OUTFILE '/var/lib/mysql-files/report.csv'
    FIELDS TERMINATED BY ',' ENCLOSED BY '"'
    ESCAPED BY ''
    LINES TERMINATED BY '\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. UPDATE semua nilai kolom yang setara dengan nilai kolom tabel lain berdasarkan idnya

  2. Cara Reset Kata Sandi Admin WordPress melalui Command Prompt MySQL

  3. MYSQL PHP Tidak Ada Basis Data yang Dipilih - Tidak Dapat Menemukan Kesalahan

  4. Pilih semua tanggal di antara dua tanggal yang tidak menggunakan tabel (buat daftar tanggal)

  5. Mysql menonaktifkan kolom auto_increment sementara dalam prosedur Tersimpan