22

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>
4

4 に答える 4

32

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

--local, -L

           Read input files locally from the client host.
于 2012-02-26T13:03:54.130 に答える
25

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

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

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

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

これが誰かに役立つことを願っています。

于 2011-07-26T22:45:29.703 に答える
13

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

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

于 2013-10-15T19:06:01.877 に答える
6

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

LOAD DATA INFILE 構文から:

Also, to use LOAD DATA INFILE on server files, you must have the FILE privilege.
于 2011-07-26T22:13:51.683 に答える