MySQL 访问因“此处文档”而被拒绝

MySQL 访问因“此处文档”而被拒绝

我正在尝试访问 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

MySQL LOAD DATA INFILE 用户权限设置

答案2

ERROR 1045 (28000) at line 3

因此,请向我们展示从第 3 行开始的查询。也许您只拥有某些权限,或者对某些表没有权限。

答案3

对于 Ubuntu(测试版 12.04)用户来说,授予 MySQL 用户权限是不够的。

这个问题比较复杂,与 AppArmor 有关MySQL LOAD DATA INFILE-AppArmor 问题

相关内容