2012-05-24 15 views
10

CSV dosyalarından veri yüklemek için MySQL'in LOAD DATA INFILE'u çağıran bir PHP betiğim var. Ancak, üretim sunucusunda, aşağıdaki hata ile sona erdi:LOAD DATA LOCAL INFILE hata veriyor Bu MySQL sürümüyle kullanılan komutu kullanamazsınız

Access denied for user ... (using password: yes)

hızlı bir çözüm olarak, çalıştığım LOAD DATA LOCAL INFILE için komutu değişti. Ancak, aynı komut bu mesajla müşterinin sunucuda başarısız oldu: local_infile = off anlatıldığı here olarak:

The used command is not allowed with this MySQL version

bu sunucu değişkeni ile ilgili bir şey olduğunu varsayalım.

Lütfen sunucu ayarlarını değiştirmeyle ilgili bir geçici çözüm önerin. Aynı sunucuda kurulu olan phpMyAdmin yardımcı programının, CSV dosyalarını kabul ettiğine dikkat edin, ancak LOAD DATA (LOCAL) INFILE kullanıyor.

+0

Bu komut, kullanmakta olduğunuz kullanıcının iznidir. – jcho360

+0

Aynı kullanıcı 'INSERT' sorgularını çalıştırabilir, ancak 'LOAD DATA INFILE' (erişim reddedildi) veya' LOAD DATA LOCAL INFILE' (LOAD DATA LOCAL INFILE) işlevini çalıştırabilir (kullanılan komut kullanılamaz). –

cevap

39

kök olarak aynı sorunla Ran ve aynı kullanıcı ile teselli ve denemek için giriş test etmek derleme

seti sunucu ayarları ile bir sorun olabilir bir an

beni alt üst etti yükleme veri aynı hatayı alırsanız, konsol kapatma ve

mysql -u USER -p --local-infile=1 DATABASE 
çalıştırmayı deneyin

komuta

şimdi komut satırı seçeneği veya mysqld yeniden ihtiyacımız olacak sonra çalışırsa yük veri komutu tekrar

çalıştırmayı deneyin yapılandırma seçeneğiyle

referansları yeniden yükleyin (referanslar 5.0 içindir ama çalıştı 5.5 ile me):

http://dev.mysql.com/doc/refman/5.0/en/load-data-local.html

http://dev.mysql.com/doc/refman/5.0/en/mysql-command-options.html#option_mysql_local-infile

+3

"mysql -u USER -p --local-infile = 1 DATABASE" .Bu komut tüm hile yaptı. Teşekkürler. –

+0

Hoş Geldiniz, Diğerleri için – Alvin

+0

no'lu cevapla çok teşekkür ederim. – Rickyfox

0

Bu izin listesine bir göz atın, bunları ayrı olarak ekleyebilirsiniz, IE. Eğer, sana seçmek silmek permision, eklemek, güncellemek var, ama hiçbir başka şeyler yapmak ... vb,

ALL [PRIVILEGES] Grant all privileges at specified access level except GRANT OPTION 
ALTER Enable use of ALTER TABLE 
ALTER ROUTINE Enable stored routines to be altered or dropped 
CREATE Enable database and table creation 
CREATE ROUTINE Enable stored routine creation 
CREATE TEMPORARY TABLES  Enable use of CREATE TEMPORARY TABLE 
CREATE USER  Enable use of CREATE USER, DROP USER, RENAME USER, and REVOKE ALL PRIVILEGES 
CREATE VIEW  Enable views to be created or altered 
DELETE Enable use of DELETE 
DROP Enable databases, tables, and views to be dropped 
EVENT Enable use of events for the Event Scheduler 
EXECUTE  Enable the user to execute stored routines 
FILE Enable the user to cause the server to read or write files 
GRANT OPTION Enable privileges to be granted to or removed from other accounts 
INDEX Enable indexes to be created or dropped 
INSERT Enable use of INSERT 
LOCK TABLES  Enable use of LOCK TABLES on tables for which you have the SELECT privilege 
PROCESS  Enable the user to see all processes with SHOW PROCESSLIST 
REFERENCES Not implemented 
RELOAD Enable use of FLUSH operations 
REPLICATION CLIENT Enable the user to ask where master or slave servers are 
REPLICATION SLAVE Enable replication slaves to read binary log events from the master 
SELECT Enable use of SELECT 
SHOW DATABASES Enable SHOW DATABASES to show all databases 
SHOW VIEW Enable use of SHOW CREATE VIEW 
SHUTDOWN Enable use of mysqladmin shutdown 
SUPER Enable use of other administrative operations such as CHANGE MASTER TO, KILL, PURGE BINARY LOGS, SET GLOBAL, and mysqladmin debug command 
TRIGGER  Enable trigger operations 
UPDATE Enable use of UPDATE 
USAGE Synonym for “no privileges” 

takmak değil güncelleştirmek veya seçmek silmek ama yapamaz

Bu komutu kullanmak

:

SHOW GRANTS 

o sen benim durumumda, hiç mümkün ne gösterecektir.

jcho360> show grants; 
+-------------------------------------------------------+ 
| Grants for [email protected]       | 
+-------------------------------------------------------+ 
| GRANT ALL PRIVILEGES ON *.* TO 'jbolivar'@'localhost' | 
+-------------------------------------------------------+ 
1 row in set (0.00 sec)