bitsCN.com
there is no 'root'@'%' registered解决
把别人机器上的MYSQL中的一个数据库导出来,生成了一个.sql的文件
在我的机器上导入这个.sql文件之后,在数据库连接时出现了如下错误:
“There is no 'root'@'%' registered”
解决办法:
首先上面的那句话的意思是,这里没有一个叫'root'@'%' 的用户存在。这么一说就明白许多了吧,因为你导入的目标MYSQL服务器里面没有这个用户,所以在数据库里,我推荐使用MYSQL可视化管理工具Navicat,在相应的用户管理上建立一个名为“%”的用户,再将相应的权限(注意视图和存储过程的管理权限在默认情况下是不赋予的)分配给这个用户即可。如果你是敲命令台的话,请自己去查MYSQL的API去吧。。总之做的事情和我上面说的一样就可以了。
PS:关于这个'root'@'%' ,这个形式就是'A'@'B'的形式,它的意思是,密码正确的前提下,IP或域名为B才可以使用MYSQL服务器上的用户名为A的权限。而'root'@'%'的意思是,密码正确的前提下任何人都可以使用MYSQL名为'root'用户的权限,即最高管理员权限。
搞笑的解决办法:
研究了一下发现是.sql文件上视图和存储过程的语句上出现了问题
.sql文件里关于创建视图是这样写的:
DROP VIEW IF EXISTS `视图名称`;
CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`%` SQL SECURITY DEFINER VIEW `视图名称` AS select ……
看到红色部分的字了吧,把.sql文件里所有视图和存储过程的红字部分的%改成localhost(或者你机器的IP)之后,再导入这个.sql文件,就不会出错了。
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号