将Visual Studio代码连接到远程Mysql数据库

问题描述

我知道这应该更加集中,但是我整日迷失了这一点,我无法弄清楚。

我正在尝试使用任何可用的VS Code扩展名连接到远程MysqL数据库

我尝试将SQLToolsMySQL/MariaDB pluginApexSQL Database Power Tools for VS Codevscode-database结合使用。

我已经阅读了所有文档,并在此处搜索了else-ware以获得示例。我所发现的只是连接到本地主机数据库

我不会列出我尝试过的所有组合,因为我觉得我尝试了所有组合。使用所有可能的登录方法

使用几种方法遇到的最大问题是,当我输入远程服务器地址和用户名时。该用户名始终传输到:username@'93-138-183-84.adsl.net.t-com.hr' 其中93-138-183-84.adsl.net.t-com.hr'是我当前的IP地址。

我收到如下错误

Error connecting to server: Access denied for user 'xxx'@'93-138-183-84.adsl.net.t-com.hr' (using password: YES)

我尝试使用字符串和示例设置,例如:

Server=xxx;Port=3306;Database=xxx;Uid=xxx;Pwd=xxx;


{
  "name": "MysqL","server": "my server adress","driver": "MysqL","port": 3306,"database": "xxx","username": "xxx","askForPassword": false,"password": "xxx","connectionTimeout": 15,"MysqLOptions": {
    ... // options See section 2. MysqLOptions
  }
}

对我没有任何帮助

PS;我检查了数据库中的服务器地址,用户和端口,因此我认为我的凭据没有错。我尝试对整个服务器使用特定于数据库用户和root用户

是否甚至可以通过VS代码从VS代码连接到远程MysqL数据库以运行查询

解决方法

因此,经过一整天,终于:

使用macOS:

  1. 我已经将SSH密钥添加到系统中,所以我只需要打开隧道,其简单的一行就可以了,解释在这里: How to connect to a MySQL database using an SSH Tunnel

    ssh -p 722 -N -L 3306:localhost:3306用户@服务器名

  • 使用端口和C面板登录。

下一个VS代码(已通过SQLToolsMySQL/MariaDB plugin测试):

使用127.0.0.1作为服务器地址,然后输入您的数据库凭据。

就是这样。

现在您可以使用VS-Code自动完成SQL方法,SQL处理并自动完成来自远程数据库的所有表和字段。

enter image description here

,

我遇到了同样的问题,终于解决了。将您的 mysql 用户设置为在主机字段中使用通配符。默认情况下,当您在 mysql 中设置新用户时,用户“主机”字段设置为“localhhost”。当您尝试从 VSC 连接到远程 mysql 服务器时,它会发送字符串“用户名”@“主机”,其中“主机”是您用于连接的计算机的 IP 地址。我按如下方式设置了一个 mysql 用户,然后连接正常:

CREATE USER 'sammy'@'192.168.0.%' IDENTIFIED BY 'password';

这将允许用户 sammy 从 ip 地址指定的网络内的任何地方访问 mysql,在这种情况下,它是我的内部网络。您可以只使用 '%' 并省略 ip,以便用户可以从任何地方访问。

这里没问题:https://dev.mysql.com/doc/refman/5.7/en/create-user.html