我正在尝试连接到 WSL2 Ubuntu 24.04 上的 MySQL 服务器。
我在Ubuntu中通过以下方式创建了一个用户:
CREATE USER 'myuser'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
GRANT ALL ON cloud.* TO 'myuser'@'localhost'
我什至尝试使用通配符创建一个用户%
:
CREATE USER 'myuser'@'%' IDENTIFIED WITH mysql_native_password BY 'password';
GRANT ALL ON cloud.* TO 'myuser'@'%'
编辑:我什至尝试创建另一个用户,0.0.0.0
因为我读到它是用于远程访问,但这也不起作用:
CREATE USER 'myuser'@'0.0.0.0' IDENTIFIED WITH mysql_native_password BY 'password';
GRANT ALL ON cloud.* TO 'myuser'@'0.0.0.0'
然后,我尝试使用以下详细信息从 MySQL Workbench 连接到服务器:
Connection method: Standard (TCP/IP)
Hostname: 172.26.15.15
Port: 3306
Username: myuser
Password: password
但我得到:
Your connection attempt failed for user 'myuser' to the MySQL server at 172.26.15.15:3306
172.26.15.15
是我的 Ubuntu IP,我什至可以从 Windows 主机 ping 它
我究竟做错了什么?
我找到了答案 - 首先我需要编辑文件
/etc/mysql/mysql.conf.d/mysqld.cnf
并更改显示bind-address
允许远程连接的行0.0.0.0
:但我仍然收到连接错误。然而这一次,我收到了一个新错误,告诉我被拒绝的主机是
<PC_NAME>.mshome.net
。这意味着 WSL2 实例将主机视为<PC_NAME>.mshome.net
然后我在 MySQL 中创建了一个新用户并授予他权限:
就这样,我能够从 Windows 主机连接到 WSL MySQL 服务器