使用pgloader迁移Grafana SQLite数据到PostgreSQL遇文件打开错误
Grafana SQLite转PostgreSQL迁移:SQLite文件无法打开问题解决
从报错日志可以明确看到问题根源:pgloader解析后的SQLite路径被错误拼接成了/home/XXXXXXXXXXX/sqlite:/home/XXXXXXXXXXX/grafana.db,这是因为你在配置文件的from字段中使用了错误的格式。
问题原因
pgloader对SQLite数据源的格式要求有两种:
- URL格式:必须以
sqlite:///开头(三个斜杠,协议后直接接绝对路径) - 直接路径:仅填写文件的绝对路径,不需要前缀
你的配置中写了sqlite:/home/XXXXXXX/grafana.db(两个斜杠),pgloader错误地将sqlite:识别为路径的一部分,导致生成了无效的文件路径。
修正方案
将配置文件中的from字段改为以下两种正确格式之一:
格式1:URL规范写法
load database from sqlite:///home/XXXXXXX/grafana.db into postgresql://grafana:YYYYYY@99.199.199.199:5432/grafana_db with data only, reset sequences set work_mem to '16MB', maintenance_work_mem to '512 MB';
格式2:直接使用绝对路径
load database from /home/XXXXXXX/grafana.db into postgresql://grafana:YYYYYY@99.199.199.199:5432/grafana_db with data only, reset sequences set work_mem to '16MB', maintenance_work_mem to '512 MB';
额外验证步骤
- 执行
ls -l /home/XXXXXXX/grafana.db确认文件存在且当前用户有读取权限 - 若服务器开启SELinux,可临时关闭或添加文件上下文规则(
chcon -t mysqld_db_t /home/XXXXXXX/grafana.db)排除权限干扰
内容的提问来源于stack exchange,提问作者Anand
相关产品推荐
相关产品推荐

