我对我们的新数据库有个问题。访问数据库的唯一方法是抛出SSH隧道。但它不起作用。
我使用以下命令:
sshpass -p <PASSWORD> ssh <USER>@<DOMAIN> -p <PORT> -L 3306:localhost:3306 -f -N我认为ssh隧道工作正常并且已经建立。
现在我想通过Shell-File连接数据库。
deposit=`mysql -h localhost --port=3306 -u <DATABASEUSER> --password=<DATABASEPASSWORD> --skip-column-names -e "<MYSQLSYNTAX>"`但总会有如下错误:
ERROR 1045 (28000): Access denied for user '<DATABASEUSER>'@'localhost' (using password: YES)你有什么想法,还是我做错了什么?
非常感谢!
发布于 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地址或名称。
发布于 2014-07-26 21:37:08
据我所知,您正试图在您的计算机和运行SQL server的远程计算机之间创建一条隧道。在ssh命令中,将3306:localhost:3306替换为远程计算机的IP地址。注意:如果您与远程计算机不在同一本地网络中,则此地址应为其内部本地IP地址。请检查您的SQL数据库权限、用户名和密码。
https://stackoverflow.com/questions/24959989
复制相似问题