web-dev-qa-db-ja.com

mysqlimport:エラー:1045、アクセスが拒否されました

Mysqlimportの実行時にこのエラーが発生する理由を誰かが知っていますか?

mysqlimport -u someone -pwhatever --columns=a,b,c,d,e bar /var/tmp/baz.sql
mysqlimport: Error: 1045, Access denied for user 'someone'@'%' (using password: YES), when using table: baz

しかしながら...

mysql -u someone -pwhatever
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 199
Server version: 5.1.41-3ubuntu12.10 (Ubuntu)

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> show grants;
+------------------------------------------------------------------------------------------------------------+
| Grants for someone@%                                                                                   |
+------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'someone'@'%' IDENTIFIED BY PASSWORD '*BLAHBLAHBLAH' |
| GRANT ALL PRIVILEGES ON `bar`.* TO 'someone'@'%'                                          |
+------------------------------------------------------------------------------------------------------------+
2 rows in set (0.00 sec)

mysql>
19
Mike Conigliaro

OK、FILE特権は「グローバル」特権であることがわかりました。これは、特定のデータベース、テーブルで選択的に有効にできないことを意味しているようです。など。これが、以前のbar。*に関する付与ステートメントが効果がなかった理由です。

GRANT ALL PRIVILEGES ON `bar`.* TO 'someone'@'%' 

*.*に対するFILE権限を付与する必要があります。

GRANT FILE ON *.* to 'someone'@'%';

これが誰かを助けることを願っています。

22
Mike

Mysqlimportに--localパラメーターを使用することにより、追加の特権の必要性を回避できます。

--local, -L

           Read input files locally from the client Host.
29
Omry Yadan

代わりに、追加のFILE許可をスキップして、このコマンドを選択する人もいます。

mysql -u username -p <yourdbname> < yourfile.sql

13
H.Rabiee

mysqlimportは、LOAD DATA INFILEステートメントへのコマンドラインインターフェイスであり、「FILE」権限(サーバーレベル)が必要です。

From LOAD DATA INFILE構文

Also, to use LOAD DATA INFILE on server files, you must have the FILE privilege.
5
Bilal