1

ラップトップからデータベースにファイルSQLをアップロードしようとしていますが、奇妙なエラーが発生します。csvphpMyAdmin の SQL ウィンドウに入力しているコードは次のとおりです。

LOAD DATA INFILE '/Users/myMac/testServerUpload.csv' 
INTO TABLE `testDatabase` 
FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n'

しかし、次のエラーが表示されます。

Error

SQL query:

LOAD DATA INFILE '/Users/myMac/testServerUpload.csv' INTO TABLE `testDatabase` FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n'

MySQL said: Documentation
#1045 - Access denied for user 'ukld'@'%' (using password: YES) 

LOAD DATA LOCAL INFILEファイルがコンピューター上にあるため、現在のコマンドの代わりに使用する必要がありますか? LOCALどちらもエラーが発生し、サーバー上にあることを意味する可能性があると思いました。このエラーを検索すると、関連するアドバイスが見つかりませんでした。

4

2 に答える 2

2

これと同じ問題があり、LOCAL を使用して完全なファイル パスを指定することで修正しました。

'C:/directory/file.csv' 

1045 エラーは、LOCAL が指定されていない場合に mySQL がファイルを検索するサーバー上のファイルにアクセスできないことが原因のようです。

以下も参照してください。

于 2011-10-31T10:22:15.393 に答える
0

root としてログインして実行する必要があります。

SHOW GRANTS FOR 'ukld'@'%';

あなたが持っていると思う権限を持っていない可能性があります... しようとしているデータベースとテーブルに対する INSERT 権限が必要ですLOAD DATA


アップデート:

GRANT の問題を修正するには、MySQL インストールでroot として次のステートメントを実行します。

REVOKE SELECT, INSERT, UPDATE, DELETE, CREATE,
       DROP, INDEX, ALTER, CREATE TEMPORARY TABLES,
       LOCK TABLES, EXECUTE, CREATE VIEW, SHOW VIEW,
       CREATE ROUTINE, ALTER ROUTINE
       ON ukld.* FROM 'ukld'@'%';

GRANT SELECT, INSERT, UPDATE, DELETE, CREATE,
       DROP, INDEX, ALTER, CREATE TEMPORARY TABLES,
       LOCK TABLES, EXECUTE, CREATE VIEW, SHOW VIEW,
       CREATE ROUTINE, ALTER ROUTINE
       ON ukld.* TO 'ukld'@'%' IDENTIFIED BY PASSWORD 'xxx';

FLUSH PRIVILEGES;

2 番目のステートメントで正しいパスワードを設定していることを確認してください。

于 2011-06-01T01:19:12.403 に答える