我已经在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。
答案 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'@'%';