usuario - mysqlimport: Error: 1045, Acceso denegado
mysql ha dicho documentación#1045 access denied for user root ''@'' localhost using password no (4)
¿Alguien sabe por qué recibo este error al ejecutar 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
Sin embargo...
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>
Algunos optarían por este comando, omitiendo la concesión adicional de ARCHIVO.
mysql -u username -p <yourdbname> < yourfile.sql
Bien, resulta que el privilegio de ARCHIVO es un privilegio "global", lo que aparentemente significa que no puede habilitarlo selectivamente en ciertas bases de datos, tablas. Es por eso que mi declaración de subvención anterior en la barra. * no tuvo efecto:
GRANT ALL PRIVILEGES ON `bar`.* TO ''someone''@''%''
Debe otorgar privilegios de ARCHIVO en *.*
:
GRANT FILE ON *.* to ''someone''@''%'';
Espero que esto ayude a alguien.
Puede evitar la necesidad de privilegios adicionales usando el parámetro --local para mysqlimport:
--local, -L
Read input files locally from the client host.
mysqlimport es una interfaz de línea de comandos para la instrucción LOAD DATA INFILE, para la cual necesita el privilegio ''FILE'' (nivel de servidor).
De la sintaxis de LOAD DATA INFILE :
Also, to use LOAD DATA INFILE on server files, you must have the FILE privilege.