[ tjelka @ 05.01.2003. 16:47 ] @
Instalirao sam mysql na windowse 2000 pro. Verziju 3.23.54. Kada želim upisati podatke sa txt datoteke pomoću LOAD DATA LOCAL INFILE javi mi grešku da moja verzija mysql ne podržava sintaksu LOAD DATA LOCAL IN FILE. Da li je netko imao sličnih problema i uspješno ih riješio?

[ broker @ 05.01.2003. 23:39 ] @
Neki parametar nisi dobro stavio a mysql daje pogresan opis greske. Moja preporuka je da uzmes MySQLFront, besplatan program, koji ce ti to odraditi bez problema sa sintaksom...
[ mikis @ 06.01.2003. 03:08 ] @
Ista stvar se i kod mene dešava :(( Parametri su provereno OK, bilo da se unesu ručno ili da se proba import fajla preko phpMyAdmina :( A sto posto sam siguran da je ranije radilo. Verzija MySQL-a je 3.23.53, OS je XP. Greška je:

The used command is not allowed with this MySQL version
[ tjelka @ 06.01.2003. 12:50 ] @
Hvala BROKER, preko MYSQLFRONTA-a uspio sam importirati .txt . Iako ima opcija IMPORT TEXT FILE koja vjerojatno upotrebljava LOAD DATA LOCAL INFILE, koja kod mene izbacuje dotičnu grešku, išao sam reko INSERT FILES INTO BLOB FIELDS u istom izborniku i uz malo podešavanja ide. Može i preko ACCESSA koji ima sjajno riješeno importiranje .txt pa onda iz ACCESSA u MYSQL. Premda to zvuči bedasto ide.

Kako li se namješta opcija koja omogućava importiranje pomoću LOAD DATA LOCAL INFILE jer je to vjerojatno security razlog na serveru da ne bi bilo moguće svima učitavati datoteke i sl?
[ broker @ 06.01.2003. 15:11 ] @
Radio sam iz MySQLFront-a upravo preko LOAD DATA LOCAL INFILE i sve je radilo kako teba iako kada sam ti prvobitno pokusavao rucno iz mysql-a dobajao sam gresku kao i ti. Problem je u sintaksi.
[ tjelka @ 06.01.2003. 20:28 ] @
BROKER, ako nemaš živaca nije važno. Hvala svejedno!
Netko drugi POMAGAJ!!!

Ovako, DATA PRIVILEGIES postavio sam na ALL, RELOAD PRIVILEGIES uredno, .txt file napravio tako da poštujem po liniji jedan RECORD a vrijednosti za polja odmaknute jednim TAB->, poštivao datum po pravilu yyyy-mm-dd. Data type odgovara u .txt postavljenim vrijednostima. Nije teško svega 5 polja. Instalirao sam mysqld-max-nt i pokrenuo kao SERVICE. MYSQL ODBC 3.51 DRIVER.
Preko mysql-front ista greška. Sve provjerio pet puta!
Jesam li ja to nešto GRUBO pogrešno shvatio ili ...
Problem je u sintaksi, ali kojoj, (LOAD DATA LOCAL INFILE?)

[ mikis @ 08.01.2003. 21:05 ] @
Ipak je u pitanju RTFM, a čini mi se i bug u novijim verzijama MySQL-a. Import ne radi ni preko MySQLFronta. Evo šta kaže MySQL manual:

--snip--

4.2.4 Security issues with LOAD DATA LOCAL

In MySQL 3.23.49 and MySQL 4.0.2, we added some new options to deal with possible security issues when it comes to LOAD DATA LOCAL.
...

There are two separate fixes for this:

If you don't configure MySQL with --enable-local-infile, then LOAD DATA LOCAL will be disabled by all clients, unless one calls mysql_options(... MYSQL_OPT_LOCAL_INFILE, 0) in the client. See section 8.4.3.159 mysql_options().
...

In the case that LOAD DATA LOCAL INFILE is disabled in the server or the client, you will get the error message (1148):

The used command is not allowed with this MySQL version

--snip--

Dakle izgleda je u Windows verziji MySQL deamona ovo po defaultu isključeno :(
[ tjelka @ 08.01.2003. 23:27 ] @
Sve sam provjerio pet puta i konfigurirao --local-infile=[1|0] ...enable/disable.. i ručno i preko fronta i u svim mogućim varijantama instalirao, deinstalirao, konfigurirao i prekonfigurirao, čitajući manual i tražeći odgovor po svim meni znanim forumima širom kugle zemaljske i nema pomoći. . Vidim da i drugi imaju istih poteškoća i svima su odgovori slični, ali u kontra varijantama pa biće da nije baš popularna ta LOAD DATA LOCAL INFILE metoda. Ubacivat ću na drugi način dok sam pod windowsima, ja dublje ne znam.
Čekat ću i tražiti, a odgovor će sigurno doći!
QUITTER NEVER WINS & WINNER NEVER QUITS!

p.s. STORED PROCEDURES još uvijek inplementiraju tamo u MYSQL AB i silno se čeka na neke pametne ljude koji će vjerojatno dobro odraditi stvar.
[ mikis @ 09.01.2003. 05:28 ] @
Evo rexc5xa1enja -- makar za phpMyAdmin i lokalnu bazu. Edituj fajl ldi_check.php iz phpMyAdmin direktorijuma, naxc4x91i red:

$query = 'LOAD DATA LOCAL INFILE \'' . $textfile . '\'';

i obrixc5xa1i rexc4x8d LOCAL, import bi trebao da radi. Naravno, ovo radi samo ako je baza na lokalnoj maxc5xa1ini (localhost).

Inaxc4x8de ovo je prijavljeno kao bug i na MySQL i na phpMyAdmin listama, ali se oniizgleda ne potresaju previxc5xa1e zbog toga, kaxc5xbeu baxc5xa1 tako treba :(

Pogledajte npr. http://sourceforge.net/tracker...group_id=23067&atid=377408
[ tjelka @ 09.01.2003. 14:22 ] @
Radi!!!!
Eto rekao sam da će odgovor doći.
Samo ne znam kako sam ovoga puta uspio a nisam prije, ali ako netko nezna eto puta:
naravno: cd c:\mysql\bin
c:\mysql\bin>mysql --local-infile=1
dobiješ pozdravnu poruku odabereš datoteku:
mysql> use kondicija
i onda importiraš:
mysql>load data local infile "D:\djevice.txt" into table januar;
a isto tako radi i:
mysql>load data infile "D:\djevice.txt" into table januar;
i dobiješ odgovor:
Query OK, 1 row affected (0.01 sec)
Records: 1 Deleted: 0 Skipped: 0 Warnings: 0

Znaći tu je ime datoteke "kondicija", ime tekstualne datoteke (poštivajući odmak između polja po jedan TAB-> i tip polja, sa po jednim recordom po liniji) na D disku je "djevice.txt", a tabela u koju ubacujemo je "januar" (koja naravno mora postojati sa definiranim tipovima polja)

PAZI NA DATUM mysql ga definira yyyy-dd-mm-dd

Ali, isto ne radi preko mysql-fronta!

[ mikis @ 09.01.2003. 17:14 ] @
Pa ako si pročitao one linkove koje sam dao... Opcija LOCAL je po defaultu isključena. Znači da ne možeš na server (udaljeni) importovati fajl sa lokalne mašine (zbog sigurnosti i štatijaznam). Ako ti je server na localhostu, opcija LOCAL ti ne treba. Takođe, svi klijeni u MySQL distribuciji su kompajlirani sa podrškom za "LOAD DATA LOCAL", samo je treba uključiti iz komandne linije.

MySQL Front, na žalost nema mogućnost isključenja opcije "LOCAL", a izgleda da je neće ni imati jer su autori prestali sa razvojem a sors nije dostupan.

Ono što meni i dalje nije jasno je kako da uključim ovu opciju na serveru (mysql daemonu). Probao sam i sa "load-infile=1" u my.ini fajlu, i sa startovanjem servera iz komandne linije sa "mysqld-nt --load-infile=1", ali neće :( Za sada sam zadovoljan da i ovako radi iz phpMyAdmina :)