在MySQL中,我创建了两个用户:
CREATE USER 'Bob'@'localhost' IDENTIFIED by 'p'
CREATE USER 'Alice'@'%' IDENTIFIED by 'a'
然后,当我尝试连接时:“mysql -u Alice -p”它失败了,告诉我
Error 1045 (28000) Access denied for user 'Alice'@'localhost'
Ť 与鲍勃一样。
任何人都知道为什么会这样?
编辑:
MySQL要求输入密码,而我putand给我的错误。
编辑2:我在远程连接,而不是在本地连接,所以唯一必须工作的是Alice。
答案 0 :(得分:0)
以root身份登录并执行以下操作:
GRANT ALL privileges ON *.* TO Bob@localhost IDENTIFIED BY 'p' WITH GRANT OPTION;
答案 1 :(得分:0)
您是否尝试使用该命令刷新权限?
FLUSH PRIVILEGES;
答案 2 :(得分:0)
根据Using % for host when creating a MySQL user中的评论,
实际上有,'localhost'在mysql中很特别,它意味着一个 通过unix套接字(或我认为的Windows上的命名管道)连接为 与TCP / IP套接字相对。使用%作为主机不包括 'localhost' - 于2012年5月30日20:45
因此,如果您的mysql -u alice...
命令使用Unix套接字而不是127.0.0.1连接,则需要
CREATE USER 'Alice'@'localhost' IDENTIFIED by 'a'