我正在尝试访问 MySQL 并使用 shell 脚本中的“此处文档”执行多个大型查询。
运行以下命令非常有效:
/usr/bin/mysql -u username -ppassword -h localhost database
运行此命令会导致访问被拒绝错误:
/usr/bin/mysql -u username -ppassword -h localhost database << EOF
--MySQL queries here
EOF
这是我收到的错误:
ERROR 1045 (28000) at line 3: Access denied for user 'username'@'localhost'
这两种方法唯一的区别是<< EOF
,为什么我突然收到错误?
答案1
您需要 FILE 权限才能从文件导入数据。您的 可能缺少该权限username
。
答案2
ERROR 1045 (28000) at line 3
因此,请向我们展示从第 3 行开始的查询。也许您只拥有某些权限,或者对某些表没有权限。
答案3
对于 Ubuntu(测试版 12.04)用户来说,授予 MySQL 用户权限是不够的。
这个问题比较复杂,与 AppArmor 有关MySQL LOAD DATA INFILE-AppArmor 问题