Bandwidthd cannot access db

I have bandwidthd-sqlite installed and configured to use a db file on external storage.
I get the stats and the graphs okay, but the data files are not stored on the external drive and it gives error 14 when trying to access the db file. and all the *.cdf files are stored in //

config bandwidthd
        option dev              br-lan
        option subnets          ""
        option skip_intervals   0
        option graph_cutoff     1024
        option promiscuous      true
        option output_cdf       true
        option recover_cdf      true
        option filter           ip
        option graph            true
        option meta_refresh     150
        option sqlite_filename  "/mnt/shares/bandwidthd/stats.db"
        option sensor_id        "default"

Tue Mar 20 14:14:34 2018 bandwidthd: Initializing database info
Tue Mar 20 14:14:34 2018 daemon.err bandwidthd: Connection to database '/mnt/shares/bandwidthd/stats.db' was unsuccessfull.  Error Code: 14
Tue Mar 20 14:14:34 2018 daemon.err bandwidthd: Could not connect to database

root@OpenWrt:/mnt/shares# ls -l // | grep cdf
-rw-r--r--    1 root     root         44113 Mar 20 14:17 log.1.0.cdf
-rw-r--r--    1 root     root         17317 Mar 20 14:13 log.2.0.cdf
-rw-r--r--    1 root     root          3751 Mar 20 13:42 log.3.0.cdf

Looks like you're using a remote mount. Have you confirmed that it is up and available when bandwidthd starts?

Not sure what // is, as that isn't really a "good" POSIX path. I'm guessing it's Windows bleed-over through samba or the like, but that path, to many native programs, is either invalid or is re-parsed to /

yes, the mount is available. I have my system log writing to this mount and it is accessible.

root@OpenWrt:/mnt/shares# ls -l /mnt/shares/
-rw-------    1 root     root        111965 Mar 20 14:27 syslog
-rw-------    1 root     root        131084 Mar 20 10:40 syslog.old

Sorry, // is root. I meant to say that the .cdf files are still being written to root file system than the external mount.

I'm still thinking it might be timing in that at the time bandwidthd gets started by procd, the mount of /mnt/shares isn't there, or isn't ready for r/w access.

if it was timing, then shouldn't it write to external storage when i stop and start the service? Just a thought.

Yes, it sounds like you've already checked that if it doesn't "find" the database once you know the mount is present.

What happens if you chmod 777 the *.cdf files?

did a chmod 777 on all the *.cdf files and restarted bandwidthd. the cdf files are being read okay, and I can see the graphs. but it is still on the root partition, not on the external storage.

Going through the wiki (, it appears that all i need to do it change the config to point to external storage and restart the service; which i have done. Not sure what i am doing wrong here.

I have exactly the same issue - and because of it, my router constantly running out of space. Wondering if there is a solution to put CDF files to the external storage?