Portál AbcLinuxu, 14. května 2025 15:09

Dotaz: mysql - load_file nacita vzdy NULL

6.7.2011 08:57 polymorf | skóre: 14 | blog: tar_zxpf
mysql - load_file nacita vzdy NULL
Přečteno: 280×
Odpovědět | Admin
Skusam nacitat asi 4kB subor /tmp/text.txt. Ma prava 777. Stale ale nacita NULL:
mysql> select load_file('/tmp/text.txt');
+----------------------------+
| load_file('/tmp/text.txt') |
+----------------------------+
| NULL                       |
+----------------------------+
1 row in set (0.00 sec)
Skontroloval som max_allowed_packet tam by problem nemal byt:
mysql> select @@max_allowed_packet;
+----------------------+
| @@max_allowed_packet |
+----------------------+
|             16777216 |
+----------------------+
1 row in set (0.00 sec)
Takisto secure_file_priv nie je nastavene takze by malo akceptovat vsetko:
mysql> select @@secure_file_priv;
+--------------------+
| @@secure_file_priv |
+--------------------+
| NULL               |
+--------------------+
1 row in set (0.00 sec)
Pri pokuse o update vypise 1 warning, ale nevypise aky warning. Co je to? Ako zistim o aky warning sa jedna?
mysql> update tabulka set nejakyblob = load_file("/tmp/text.txt") where id=2;
Query OK, 0 rows affected, 1 warning (0.00 sec)
Rows matched: 1  Changed: 0  Warnings: 1
Tabulka vyzera takto:
mysql> explain tabulka;
+-------------+-------------+------+-----+---------+----------------+
| Field       | Type        | Null | Key | Default | Extra          |
+-------------+-------------+------+-----+---------+----------------+
| id          | int(11)     | NO   | PRI | NULL    | auto_increment |
| nejakyblob  | blob        | NO   |     | NULL    |                |
+-------------+-------------+------+-----+---------+----------------+
2 rows in set (0.00 sec) 

Řešení dotazu:


Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

Řešení 1× (polymorf (tazatel))
6.7.2011 11:38 Senior Database Programmer
Rozbalit Rozbalit vše Re: mysql - load_file nacita vzdy NULL
Odpovědět | | Sbalit | Link | Blokovat | Admin
Nespominas ci tam mas nastavene FILE permission.

GRANT FILE ON ..
Řešení 1× (polymorf (tazatel))
6.7.2011 11:46 Senior Database Programmer
Rozbalit Rozbalit vše Re: mysql - load_file nacita vzdy NULL
A este ma napadlo, skus docasne vypnut apparmor alebo selinux ak pouzivas.
6.7.2011 13:54 polymorf | skóre: 14 | blog: tar_zxpf
Rozbalit Rozbalit vše Re: mysql - load_file nacita vzdy NULL
Overim, dam vediet.
7.7.2011 09:12 polymorf | skóre: 14 | blog: tar_zxpf
Rozbalit Rozbalit vše Re: mysql - load_file nacita vzdy NULL
Tak si mi pomohol. Robil to apparmor. V /etc/apparmor.d/usr.sbin.mysqld je zoznam suborov kde ma pristup (/tmp tam nie je), po vypnuti apparmoru (/etc/init.d/apparmor stop; /etc/init.d/apparmor teardown) a restarte mysqld (/etc/init.d/mysqld restart) uz to funguje. Tiez moj user mal "GRANT USAGE ON *.*" a "GRANT ALL PRIVILEGES ON databaza.*", musel som FILE grant pridat aj na *.*, nestacilo len pre databazu.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.