社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
私信  •  关注

Shnkc

Shnkc 最近创建的主题
Shnkc 最近回复了

当你跑的时候 mysql -u bill -p ,请 localhost 已解析为您的IP,因为它是127.0.0.1 /etc/hosts 文件,作为默认值 127.0.0.1 localhost 存在。所以,mysql将您解释为 bill@localhost 不被授予 bill@'%' 是的。这就是为什么有两个不同的记录 root 结果中的用户 select host, user from mysql.user; 查询。

处理这个问题有两种方法。

一个是指定一个IP,它不是由 /ETC/主机 尝试登录时的文件。例如,服务器的IP是 10.0.0.2 是的。运行命令时 mysql -u bill -p -h 10.0.0.2 ,您将能够登录。如果你打字 select user(); ,您将得到 bill@10.0.0.2 是的。当然,任何域名都不应该解析为 /ETC/主机 文件。

其次,您需要为这个特定的域名授予访问权限。为了 帐单@localhost ,您应该调用命令 grant all privileges on *.* to bill@localhost identified by 'billpass'; .在这种情况下,您可以使用命令登录 mysql-u比尔-p 是的。一旦登录, 选择用户(); 命令返回 帐单@localhost 是的。

但这只是为了让您尝试在同一主机上登录mysql服务器。从远程主机上看,mysql的行为符合预期,“%”将授予您登录权限。