我有个奇怪的错误。我通过命令行以root身份登录到本地mysql。创建数据库后:
create database some_db;
然后授予某个用户权限:
grant all privileges on some_db.* to some_user@'localhost' identified by 'password';
这是一个错误:
ERROR 1044 (42000): Access denied for user 'root'@'localhost' to database 'some_db'
根目录的权限(show grants;)显示:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY PASSWORD '*8919C53DC7A4DFBF3F8584382E96463583EB7FDA'
我还要确保以root身份登录:
select current_user();
这将确认我以“root”@“localhost”身份登录
我已经创建数据库和分配用户多次,从来没有一个问题。为什么在以root身份登录时无法将用户分配给root创建的数据库?
p、 从其他帖子来看,我认为这个问题可能是由于一些陌生用户引起的
select host, user from mysql.user;
一些我没有添加但确实出现的用户:
MY_COMPuTER_name.local | ''
MY_COMPuTER_name.local | root
我试图删除这些用户
drop user 'root'@'MY_COMPuTER_name.local';
drop user ''@'MY_COMPuTER_name.local';
但是,虽然它表示query run successful,但即使在刷新权限之后,用户也不会被删除。为什么我不能删除用户?任何帮助都是值得的
4条答案
按热度按时间tvz2xvvm1#
我不能通过'drop'语句删除一些用户的原因是mysql中有一个bughttp://bugs.mysql.com/bug.php?id=62255 主机名包含大写字母。解决方案正在运行以下查询:
我仍在试图找出另一个问题,即拥有所有权限的根用户无法为特定数据库向新用户授予权限
a14dhokn2#
如果尝试在mysql(安装在xampp服务器上)cmd提示符下运行sql命令时出现错误1044(42000),那么解决方案如下:
关闭mysql命令提示符。
打开cmd提示符(从“开始”菜单->运行->cmd),将显示:c:\users\user>_
通过键入以下命令转到mysql.exe:
C:\Users\User>cd\ C:\>cd xampp C:\xampp>cd mysql C:\xxampp\mysql>cd bin C:\xampp\mysql\bin>mysql -u root
现在尝试通过键入以下内容创建新数据库:如果显示:
那恭喜你!你可以走了。。。
polhcujo3#
首先,确定您登录的用户:
第一个命令的结果是您试图以什么身份登录,第二个是您实际连接的身份。确认您已以身份登录
root@localhost
在mysql中。Grant_priv
至root@localhost
. 这是你可以检查的方法。您可以看到,对于root@localhost. 这个应该是y。下面是如何修复此问题:
我重新登录,一切正常。
nbysray54#
尝试注解文件my.cnf中的字符串“sql mode=…”,然后重新启动mysql。