问题描述
我知道这应该更加集中,但是我整日迷失了这一点,我无法弄清楚。
我正在尝试使用任何可用的VS Code扩展名连接到远程MysqL数据库。
我尝试将SQLTools与MySQL/MariaDB plugin,ApexSQL Database Power Tools for VS Code,vscode-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:
-
我已经将SSH密钥添加到系统中,所以我只需要打开隧道,其简单的一行就可以了,解释在这里: How to connect to a MySQL database using an SSH Tunnel
ssh -p 722 -N -L 3306:localhost:3306用户@服务器名
- 使用端口和C面板登录。
下一个VS代码(已通过SQLTools和MySQL/MariaDB plugin测试):
使用127.0.0.1
作为服务器地址,然后输入您的数据库凭据。
就是这样。
现在您可以使用VS-Code自动完成SQL方法,SQL处理并自动完成来自远程数据库的所有表和字段。
,我遇到了同样的问题,终于解决了。将您的 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