首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >通过SSH隧道连接MySQL数据库

通过SSH隧道连接MySQL数据库
EN

Stack Overflow用户
提问于 2014-07-26 00:08:31
回答 2查看 178关注 0票数 0

我对我们的新数据库有个问题。访问数据库的唯一方法是抛出SSH隧道。但它不起作用。

我使用以下命令:

代码语言:javascript
复制
sshpass -p <PASSWORD> ssh <USER>@<DOMAIN> -p <PORT> -L 3306:localhost:3306 -f -N

我认为ssh隧道工作正常并且已经建立。

现在我想通过Shell-File连接数据库。

代码语言:javascript
复制
deposit=`mysql -h localhost --port=3306 -u <DATABASEUSER> --password=<DATABASEPASSWORD> --skip-column-names -e "<MYSQLSYNTAX>"`

但总会有如下错误:

代码语言:javascript
复制
ERROR 1045 (28000): Access denied for user '<DATABASEUSER>'@'localhost' (using password: YES)

你有什么想法,还是我做错了什么?

非常感谢!

EN

回答 2

Stack Overflow用户

发布于 2014-07-26 01:32:40

假设您的所有权限都是for的,那么用127.0.0.1替换localhost可能是值得的。

根据MySQL文档:http://dev.mysql.com/doc/refman/5.5/en/connecting.html

在Unix上,MySQL程序特别对待主机名localhost,与其他基于网络的程序相比,这种方式可能与您所期望的有所不同。对于到本地主机的连接,MySQL程序尝试使用Unix套接字文件连接到本地服务器。即使提供了--port或-P选项来指定端口号,也会发生这种情况。要确保客户端与本地服务器建立TCP/IP连接,请使用--host或-h指定主机名值127.0.0.1,或者指定本地服务器的IP地址或名称。

票数 1
EN

Stack Overflow用户

发布于 2014-07-26 21:37:08

据我所知,您正试图在您的计算机和运行SQL server的远程计算机之间创建一条隧道。在ssh命令中,将3306:localhost:3306替换为远程计算机的IP地址。注意:如果您与远程计算机不在同一本地网络中,则此地址应为其内部本地IP地址。请检查您的SQL数据库权限、用户名和密码。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24959989

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档