检查这个WSL github issue。保存@edwindijas的powershell脚本并由管理员执行。如果您仍然无法访问MySQL并获得access denied for user ... <you-computer-name>.mshome.net,则需要允许此用户从此host访问。 举例来说:假设是root,你需要在mysql cli中执行以下命令: GRANT ALL PRIVILEGES ON *.* TO 'root'@'%<you-computer-name>.mshome.net' IDENTIFIED BY '<password>';个 或者允许root用户从任何主机访问WSL 2 MySQL: GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password';个
5条答案
按热度按时间bt1cpqcv1#
我还在WSL上托管mysql-server,并在Windows上运行MySQL workbench。
我必须在WSL x1c 0d1x中获取IP
并在MySQL Workbench
中使用此IP
b5buobof2#
默认情况下,MySql只监听127.0.0.1。如果您使用
wsl hostname -I
返回的IP地址进行连接(Permana提到),那么您需要更改/etc/mysql/mysql.conf.d/mysqld.cnf以侦听所有IP或您的特定IP。通过在Ubuntu示例中键入以下内容来编辑MySql配置:
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
个更改行:
bind-address = 127.0.0.1
个至:
bind-address = 0.0.0.0
或者将
0.0.0.0
改为wsl hostname -I
返回的IP。使用以下命令重新启动MySql:
sudo service mysql restart
个fafcakar3#
既然你的问题是在WSL2 release之前提出的,我假设你使用的是WSL 1。
针对WSL 1
您可以直接从Windows访问WSL 1 MySQL,但您试图以错误的方式访问。
在 * 网络类型 * 中,您应该选择 MariaDb或MySQL(TCP/IP),而不是 MySQL(SSH隧道)。
针对WSL 2
检查这个WSL github issue。保存@edwindijas的powershell脚本并由管理员执行。如果您仍然无法访问MySQL并获得
access denied for user ... <you-computer-name>.mshome.net
,则需要允许此用户从此host
访问。举例来说:假设是root,你需要在mysql cli中执行以下命令:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%<you-computer-name>.mshome.net' IDENTIFIED BY '<password>';
个或者允许root用户从任何主机访问WSL 2 MySQL:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password';
个vxbzzdmp4#
至于我,我也在使用WSL制作基于Web的应用程序
首先确保mysql运行在像
sudo service mysql start
这样的WSL上然后一旦启动,打开HeidiSql并简单地连接到它,这里是我的示例
的数据
确保IP地址是127.0.0.1不是任何IP,不是您用于连接互联网的IP
a8jjtwal5#
配置MYSQL
首先,确保你的mysql/ mariadb绑定到接口
bind-address = 0.0.0.0
。配置文件可以由sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
编辑,而mariadb是sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
。通过客户端软件连接
对于您的客户端,只需使用
localhost
作为您的主机不要使用ip地址!.