调用mysqlimport时访问被拒绝

时间:2015-09-23 21:42:44

标签: mysql

我已经在SO和其他网站上看到了与我的问题相关的10多个答案,但我仍然无法对“mysqlimport”工作进行以下调用。我会喜欢知道他们在做什么的人的建议。

在调用“mysql.server start”之后,我尝试以下操作:

mysqlimport -v --ignore-lines=1 --fields-terminated-by=, --columns='a,b,c' --local -u kevinismus -p testdb /path/to/file.csv

但得到错误:

  

“mysqlimport:错误:1045用户拒绝访问   'kevinismus'@'localhost'(使用密码:YES)“

我让这个命令工作的唯一方法就是我打电话

mysql.server start --skip-grant-tables

我宁愿不这样做。我已经尝试了答案here,我已经刷新了权限,重新启动了服务器,并调用了mysql_upgrade like suggested,但都无济于事。我似乎拥有所有特权:

    mysql> select * from mysql.user where User='kevinismus' and Host='localhost'\G

                  Host: localhost
                  User: kevinismus
              Password: 
           Select_priv: Y
           Insert_priv: Y
           Update_priv: Y
           Delete_priv: Y
           Create_priv: Y
             Drop_priv: Y
           Reload_priv: Y
         Shutdown_priv: Y
          Process_priv: Y
             File_priv: Y
            Grant_priv: Y
       References_priv: Y
            Index_priv: Y
            Alter_priv: Y
          Show_db_priv: Y
            Super_priv: Y
 Create_tmp_table_priv: Y
      Lock_tables_priv: Y
          Execute_priv: Y
       Repl_slave_priv: Y
      Repl_client_priv: Y
      Create_view_priv: Y
        Show_view_priv: Y
   Create_routine_priv: Y
    Alter_routine_priv: Y
      Create_user_priv: Y
            Event_priv: Y
          Trigger_priv: Y
Create_tablespace_priv: Y
              ssl_type: 
            ssl_cipher: 
           x509_issuer: 
          x509_subject: 
         max_questions: 0
           max_updates: 0
       max_connections: 0
  max_user_connections: 0
                plugin: mysql_native_password
 authentication_string: 
      password_expired: N
1 row in set (0.00 sec)

此外,如果我为kevinismus @ localhost调用SHOW GRANTS,我会看到:

mysql> show grants for kevinismus@localhost;
+---------------------------------------------------------------------------+
| Grants for kevinismus@localhost                                           |
+---------------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'kevinismus'@'localhost' WITH GRANT OPTION |
+---------------------------------------------------------------------------+
1 row in set (0.01 sec)

那是什么给出的?我错过了什么MySQL权限阻止我调用mysqlimport(我知道这真的称为引擎盖下的LOAD DATA INFILE)?任何帮助将不胜感激。

FWIW,我使用的是MySQL 5.6.23和OSX 10.10.4。

2 个答案:

答案 0 :(得分:1)

看起来像凯文主义' @' localhost'没有密码("显示授权"不显示"由''""部分识别并且从mysql.users中选择在密码中显示空白行字段)。

mysqlimport有" -p"选项,因此它会要求输入密码。在这种情况下,您可以删除" -p"来自mysqlimport或只是点击"输入"当它要求输入密码时。

答案 1 :(得分:0)

我认为这已在mysqlimport: Error: 1045, Access denied

得到解答

简而言之,要么使用mysqlimport --local选项,要么授予FILE privelege:GRANT FILE ON *.* to 'someone'@'%';