只是我在这个问题上的 2 美分。我在尝试从 MySQL Workbench 连接时遇到了完全相同的问题。我正在运行一个 bitnami-mysql 虚拟机来设置本地沙箱进行开发。
Bitnami 的教程说要运行“授予所有权限”命令:
/opt/bitnami/mysql/bin/mysql -u root -p -e "grant all privileges on *.* to 'root'@'%' identified by 'PASSWORD' with grant option";
这显然不起作用,我终于使用 Mike Lischke 的回答让它工作了。
我认为发生的事情是 root@% 用户关联了错误的凭据。因此,如果您尝试修改用户的权限并且没有运气,请尝试:
- 删除用户。
- 再次创建用户。
- 确保您的 MySQL 配置文件具有正确的绑定。就我而言,我已经注释掉了这条线,因为它只是用于沙盒环境。
1.删除用户。
从 Mysql 控制台:
列出用户(有助于查看所有用户):
select user, host from mysql.user;
删除所需用户:
drop user '{{ username }}'@'%';
2. 再次创建用户。
创建用户并授予权限:
CREATE USER '{{ username }}'@'%' IDENTIFIED BY '{{ password }}';
GRANT ALL PRIVILEGES ON *.* TO '{{ username }}'@'%' WITH GRANT OPTION;
运行此命令:
FLUSH PRIVILEGES;
3. 确保您的 MySQL 配置文件具有正确的绑定。
找到您的 MySQL 配置文件(最后的附加说明)。如果您想让 MySQL 侦听多个网络上的连接,请在配置文件中找到以下行:
bind-address=127.0.0.1
并使用“#”对其进行评论:
#bind-address=127.0.0.1
对于生产环境,您可能希望使用限制网络访问(最后的附加说明)。
然后重新启动您的 MySQL 服务。
希望这可以帮助遇到同样问题的人!
绑定:如果您想了解更多信息,我建议您查看以下解决方案如何将 MySQL 服务器绑定到多个 IP 地址。它基本上说您可以使用防火墙保持 MySQL 处于打开状态并限制连接,或者如果您拥有 MySQL 8.0.13 及更高版本,则可以使用本机限制连接。
MySQL 配置文件该文件可能有不同的位置,具体取决于您的 Linux 发行版和安装。在我的系统上,它位于
'/etc/my.cnf'
. 以下是其他建议的位置:
- /etc/mysql/mysql.conf.d
- /etc/mysql/my.cnf
您还可以搜索配置位置,如本网站所示:
如何查找 MySQL 配置文件的位置。