Can I ignore the LOAD DATA INFILE error in Adminstration > System Check?

In Administration > System Check, I see the following warning under Database abilities:

LOAD DATA INFILE
Using LOAD DATA INFILE will greatly speed Matomo’s archiving process up. To make it available to Matomo, try updating your PHP & MySQL software and make sure your database user has the FILE privilege.
If your Matomo server tracks high traffic websites (eg. > 100,000 pages per month), we recommend to try fix this problem.
Error: LOAD DATA INFILE failed… Error was:
Try #1: LOAD DATA INFILE : SQLSTATE[28000]: Invalid authorization specification: 1045 Access denied for user ‘U3363712’@‘192.168.4%’ (using password: YES)[28000],
Try #2: LOAD DATA LOCAL INFILE : SQLSTATE[42000]: Syntax error or access violation: 1148 The used command is not allowed with this MySQL version[42000]
Troubleshooting: FAQ on matomo.org

I contacted my hosting company and they confirmed that the LOAD DATA INFILE command has been disabled due to security concerns, but they offered me a somewhat convoluted work around to reactivate it on a per request basis (using mysqli_options())

My question: is it worth it? My combined sites don’t come close to 1,000,000 views per month. Can I ignore this error, or is it worth investing the time to get it fixed?

Hi,

If you don’t have performance issues I don’t think it is worth worrying about this.

Exspecially as I don’t think any shared hoster will enable this.

1 Like

The Administration page is painfully slow to load (takes ca. 18-20 seconds). Could that have anything to do with this error?

Hi,

It could be, but it doesn’t have to. LOAD DATA INFILE should mostly speed up the generation of reports so I don’t think so.

You can check out How to configure Matomo for speed - Analytics Platform - Matomo for some tips.

1 Like

Try

mysql> SHOW GLOBAL VARIABLES LIKE 'local_infile';
mysql> SET GLOBAL local_infile = 'ON';
mysql> SET GLOBAL local_infile = 1;
mysql> SET GLOBAL local_infile = true;
mysql> SHOW GLOBAL VARIABLES LIKE 'local_infile';
mysql> FLUSH PRIVILEGES;

And your all set

1 Like

hi i still cant get this to work can som one do there best to help

ive done what you said

mysql> SHOW GLOBAL VARIABLES LIKE ‘local_infile’; mysql> SET GLOBAL local_infile = ‘ON’; mysql> SET GLOBAL local_infile = 1; mysql> SET GLOBAL local_infile = true; mysql> SHOW GLOBAL VARIABLES LIKE ‘local_infile’; mysql> FLUSH PRIVILEGES;

but the same