同様の問題が何度も議論されていましたが、私の場合は解決策が見つかりませんでした。MySQL CSVのインポート権限が拒否された
MySQLバージョン:
$ mysql --version
mysql Ver 14.14 Distrib 5.6.30, for debian-linux-gnu (x86_64) using EditLine wrapper
のUbuntu 15.10 64ビットのデスクトップ。ご覧のように、クライアントとサーバが同じホスト上にある
$ mysql -u dmeziere -p -e "LOAD DATA INFILE '/tmp/FR.csv' INTO TABLE project_dev.cities CHARACTER SET 'UTF8' FIELDS TERMINATED BY ',' ENCLOSED BY '\"' LINES TERMINATED BY '\n' IGNORE 0 ROWS (country_code, country_name, postal_code, place_name, admin_name1, admin_code1, admin_name2, admin_code2, admin_name3, admin_code3, latitude, longitude, accuracy);"
Enter password:
ERROR 29 (HY000) at line 1: File '/tmp/FR.csv' not found (Errcode: 13 - Permission denied)
:ここ
は私が実行しようとするコマンドです。このコマンドは、通常、別のサーバ(Debian 8.0のMySQL 5.5.43)の同じスキーマで実行されるもののコピー/ペーストです。
「LOAD DATA LOCAL INFILE」を試行しています。 --local-infileを追加しても機能しません。ここで
は私の助成金です:
mysql> show grants;
+--------------------------------------------------------------------------------------------------------------------------------------------+
| Grants for [email protected] |
+--------------------------------------------------------------------------------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'dmeziere'@'localhost' IDENTIFIED BY PASSWORD '***' WITH GRANT OPTION |
+--------------------------------------------------------------------------------------------------------------------------------------------+
1 rows in set (0,00 sec)
だから私はFILE権限を持つ必要があります。とにかく、私もmysqlのルートのデフォルトアカウントを試してみました。だから、ファイルが存在し、アクセス可能である
$ ll /tmp/FR.csv
-rwxrwxrwx 1 dmeziere dmeziere 6,2M mai 25 13:08 /tmp/FR.csv
:
は、ここでファイル権限あります。あなたが想像しているように、エラーを制限するためにファイルを深いパスから移動しようとしましたが、手がかりを見つけようとしている間に完全なアクセス許可を与えました。/tmp上のPermsは、drwxrwxrwtのルート・ルートです。私もmysqlをsudoしようとしました。
どちらのシステムもSE Linuxを使用していません。
最後に、偽のバグを排除するために、まだ空であることを確認するためにテーブルを*選択しました。
アイデア?
ファイルをmysql binディレクトリに保存し、上記のクエリでそのファイルパスを指定します。 これはうまくいくはずです。 – Priyanshu