用户无法执行选择错误 1142
Posted
技术标签:
【中文标题】用户无法执行选择错误 1142【英文标题】:User cannot execute select error 1142 【发布时间】:2012-05-30 20:11:45 【问题描述】:我的 phpmyadmin 或 mysql 命令行不允许我执行以下查询:
SELECT customer.First, customer.Last, login.Username, login.Password, customer.Addrln1,
customer.Addrln2, customer.Postcode, customer.County, customer.Country, customer.Phone, customer.Email,
employee.EmpFirst, employee.EmpEmail, move.MoveID, move.CityOrig, move.CityDest, move.CountryOrig,
move.CountryDest, move.EnquiryDate, move.Surveydate, move.QuoteDate, move.DepEst, move.DepAct, move.ArrEst, move.ArrAct,
move.ClearEst, move.ClearAct, move.DelEst, move.DelAct, move.Port, move.Method, move.Status
FROM customer
LEFT JOIN oim2.login ON customer.CustID = login.CustID
LEFT JOIN oim2.move ON customer.CustID = move.CustID
LEFT JOIN oim2.employee ON move.EmpID = employee.EmpID
WHERE customer.First = 'dave' and customer.Last='smith'
1142 - SELECT 命令拒绝用户 'oceanai3'@'localhost' 用于表 'login'
Dave smith 只是名字和姓氏的示例,用户可以执行以下查询: 选择 * 从登录 SELECT * FROM 移动 从客户中选择 *
如果我从原始查询中删除对登录的引用,则会收到错误 #1142 - SELECT command denied to user 'oceanai3'@'localhost' for table 'move'。我已经粘贴了数据库的完整 sql 文件,它可以在这里找到:http://pastebin.com/H6aTS74m 我浏览了很多其他人的帖子以找到答案,但我找不到任何对我有帮助的东西。
谢谢
C
【问题讨论】:
【参考方案1】:我认为,也许是 Jivings 的帖子:
GRANT SELECT ON database.* TO user@'localhost' IDENTIFIED BY 'password';
可能需要在用户周围加上单引号,例如:
GRANT SELECT ON database.* TO 'user'@'localhost' IDENTIFIED BY 'password';
至少,这对我有用,但我使用的是 phpMyAdmin 3.5.2.2。尽管如此,如果这可以帮助某人,那才是最重要的:)
【讨论】:
【参考方案2】:GRANT SELECT ON database.* TO user@'localhost' IDENTIFIED BY 'password';
用您的值替换占位符。
【讨论】:
#1044 - 用户'oceanai3'@'localhost' 拒绝访问数据库'oceanai3_oim',数据库位于justhost 提供的共享服务器上,oceanai3 是我帐户的root 用户...我可以从所有帐户对此数据库执行一个选择语句,但该查询将不会运行! 它不可能是root用户。因为那将拥有所有权限。您必须让 root 用户为您的用户运行此命令。以上是关于用户无法执行选择错误 1142的主要内容,如果未能解决你的问题,请参考以下文章
mysqlworkbench 错误 1142:创建命令拒绝用户'readonly'@'
PROC OLAP:错误:无法执行请求的操作,因为用户“”没有文件夹的 WriteMemberMetadata 权限