Deskripsi masalah
Pernyataan SQL berikut dijalankan untuk mengimpor data ke instance ApsaraDB RDS for PostgreSQL:
copy mp3 (NAME,city,nation,lat,lng,url,mediatype,type) from '/home/alex/tmp/pos.csv' with csv;Pesan kesalahan berikut ditampilkan:
ERROR: harus menjadi superuser untuk menyalin ke atau dari file
HINT: Siapa pun dapat menyalin ke stdout atau dari stdin. Perintah \copy psql juga bekerja untuk siapa saja.Penyebab
Secara default, izin superuser diperlukan untuk menjalankan pernyataan COPY. Namun, izin superuser tidak didukung dalam ApsaraDB RDS for PostgreSQL.
Solusi
Masuk ke komputer Anda dan jalankan perintah berikut untuk melewati batasan:
cat [$Table_Name].csv | ~/workspace/pg94/bin/psql -h [$Host] -p [$Port] -U [$User] -c "copy [$Table_Name] from stdin"[$Table_Name] menentukan nama tabel dalam database.
[$Host] menentukan nama atau alamat IP host tempat instance RDS berada.
[$Port] menentukan nomor port.
[$User] menentukan nama pengguna yang digunakan untuk masuk ke instance RDS.
Referensi
Untuk informasi lebih lanjut tentang cara memigrasikan data ke instance ApsaraDB RDS for PostgreSQL, lihat Gunakan pg_dump dan pg_restore untuk memigrasikan data dari instance PostgreSQL yang dikelola sendiri ke instance ApsaraDB RDS for PostgreSQL.
Cakupan aplikasi
ApsaraDB RDS for PostgreSQL