在云数据库 RDS PostgreSQL 版中,执行如下SQL语句导入数据。
copy mp3 (NAME,city,nation,lat,lng,url,mediatype,type) from '/home/alex/tmp/pos.csv' with csv;
系统提示如下错误。
ERROR: must be superuser to COPY to or from a file HINT: Anyone can COPY to stdout or from stdin. psql's \copy command also works for anyone.
默认copy是需要superuser的权限,云数据库RDS PostgreSQL版没有开放该权限。
阿里云提醒您:
- 如果您对实例或数据有修改、变更等风险操作,务必注意实例的容灾、容错能力,确保数据安全。
- 如果您对实例(包括但不限于ECS、RDS)等进行配置与数据修改,建议提前创建快照或开启RDS日志备份等功能。
- 如果您在阿里云平台授权或者提交过登录账号、密码等安全信息,建议您及时修改。
登录到本机执行如下命令,绕过限制。
cat [$Table_Name].csv | ~/workspace/pg94/bin/psql -h [$Host] -p [$Port] -U [$User] -c "copy [$Table_Name] from stdin"
说明:
- [$Table_Name]指数据库的表名。
- [$Host]值要登录的RDS实例主机名或者IP地址。
- [$Port]指端口号
- [$User]指登录用户名
云数据库RDS for PostgreSQL版迁移数据更多方法,请参见使用pspl命令迁移PostgreSQL数据的方法。
如果您的问题仍未解决,您可以在阿里云社区提交工单联系阿里云技术支持。