【发布时间】:2019-06-19 23:36:13
【问题描述】:
【问题讨论】:
-
我终于发现我需要将 MySQL Workbench 从 6 升级到 8,因为 WSL 1 安装了 MySQL 8:stackoverflow.com/a/67963231/470749
标签: mysql ubuntu windows-subsystem-for-linux
【问题讨论】:
标签: mysql ubuntu windows-subsystem-for-linux
【讨论】:
由于您的问题是在 WSL2 release 之前提出的,因此我假设您使用的是 WSL1。
您可以直接从 Windows 访问 WSL1 MySQL,但您尝试以错误的方式访问。
在Network type中,你应该选择MariaDb or MySQL(TCP/IP)而不是MySQL (SSH Tunnel)。 p>
检查此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 用户从任何主机访问 WSL2 MySQL:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password';
【讨论】:
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'IDENTIFIED BY 'mypassword'' at line 1
【讨论】:
flags=4163<UP,BROADCAST,RUNNING,MULTICAST> 配置
ifconfig的输出通常会显示多个 IP地址,而确定使用哪个IP地址的方法是查找包含flags=4163<UP,BROADCAST,RUNNING,MULTICAST> 的行之后的行。
wsl hostname -I 从 cmd 获取 WSL IP。
默认情况下,MySql 只监听 127.0.0.1。如果您使用wsl hostname -I(Permana 提到的)返回的 IP 地址进行连接,那么您需要更改 /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。
使用:sudo service mysql restart重新启动 MySql
【讨论】: