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 [email protected]% |
+------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'someone'@'%' IDENTIFIED BY PASSWORD '*BLAHBLAHBLAH' |
| GRANT ALL PRIVILEGES ON `bar`.* TO 'someone'@'%' |
+------------------------------------------------------------------------------------------------------------+
2 rows in set (0.00 sec)
mysql>
Ответы
Ответ 1
ОК, выясняется, что привилегия FILE является "глобальной" привилегией, что, по-видимому, означает, что вы не можете выборочно включать ее в определенные базы данных, таблицы. и т.д. Поэтому моя предыдущая заявка на грант на баре * не имела эффекта:
GRANT ALL PRIVILEGES ON `bar`.* TO 'someone'@'%'
Вам необходимо предоставить привилегии FILE на *.*
:
GRANT FILE ON *.* to 'someone'@'%';
Надеюсь, это поможет кому-то.
Ответ 2
Вы можете избежать необходимости в дополнительных привилегиях, используя параметр -local для mysqlimport:
--local, -L
Read input files locally from the client host.
Ответ 3
Некоторые предпочитают эту команду, пропуская дополнительный FILE-грант.
mysql -u username -p <yourdbname> < yourfile.sql
Ответ 4
mysqlimport - это интерфейс командной строки для инструкции LOAD DATA INFILE, для которой вам нужна привилегия "FILE" (уровень сервера).
Из Синтаксис LOAD DATA INFILE:
Also, to use LOAD DATA INFILE on server files, you must have the FILE privilege.