ubuntu 如何从主机Windows连接到WSL mysql

bq3bfh9z  于 2023-08-03  发布在  Windows
关注(0)|答案(5)|浏览(159)

我试图将HeidiSql从主机连接到我的WSL Mysql,但我无法让它连接它
错误“无法连接到Mysql服务器上'127.0.0.1'”
也尝试了SSH,但无法连接到服务器


的数据

bt1cpqcv

bt1cpqcv1#

我还在WSL上托管mysql-server,并在Windows上运行MySQL workbench。
我必须在WSL x1c 0d1x中获取IP
并在MySQL Workbench

中使用此IP

b5buobof

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

fafcakar

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';

vxbzzdmp

vxbzzdmp4#

至于我,我也在使用WSL制作基于Web的应用程序
首先确保mysql运行在像sudo service mysql start这样的WSL上
然后一旦启动,打开HeidiSql并简单地连接到它,这里是我的示例


的数据
确保IP地址是127.0.0.1不是任何IP,不是您用于连接互联网的IP

a8jjtwal

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地址!
.

相关问题