我绝望了!场景:一个MySql数据库和一个Java程序,我在那里从事该数据库中的一些工作。到现在为止还挺好。 我现在正在尝试创建一个新用户(我可以)并为同一个用户设置密码(我也可以)。问题是当我尝试向该用户授予某些权限时。我使用这个查询
GRANT SELECT ON respet.some_table TO 'ro'@'localholst'
答案是错误代码:1133。无法在用户表中找到任何匹配的行。 所以我检查了
SELECT * FROM mysql.user
它表明有用户
'localhost', 'ro', '*A4B6157319038724E3560894F7F932C8886EBFCF'
我已经阅读了很多关于使用FLUSH PRIVILEGES的内容,但它也没有用。
然后我尝试了那个查询
GRANT SELECT ON respet.some_table TO 'ro'@'localholst' IDENTIFIED BY '1234';
并且显然有效,但当我这样做时,这是谎言,因为我做了
SHOW GRANTS FOR 'ro'@'localhost'
它返回的所有内容是
'GRANT USAGE ON *.* TO \'ro\'@\'localhost\' IDENTIFIED BY PASSWORD \'*A4B6157319038724E3560894F7F932C8886EBFCF\''
所以,我不知道发生了什么。如果您想知道,那是我用来从Java创建用户的查询
"CREATE USER '" + userName + "'@'localhost'";
设置密码
"SET PASSWORD FOR '" + userName + "'@'localhost' = PASSWORD('" + password + "')";
你现在休息了。有趣的是,如果我从Workbench创建用户,这一切都有效,但Grant权限部分。任何线索?谢谢!