我的新数据库存在问题。访问数据库的唯一方法是抛出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)
你有任何想法或我做错了吗?
非常感谢!
答案 0 :(得分:1)
假设您的所有权限都可以,则可能需要为localhost
交换127.0.0.1
。
根据MySQL文档:http://dev.mysql.com/doc/refman/5.5/en/connecting.html
在Unix上,MySQL程序专门处理主机名localhost 与其他人相比可能与您的期望不同的方式 基于网络的程序。用于连接到localhost,MySQL程序 尝试使用Unix套接字文件连接到本地服务器。 即使给出了--port或-P选项来指定端口,也会发生这种情况 数。确保客户端建立TCP / IP连接 本地服务器,使用--host或-h指定主机名值 127.0.0.1,或本地服务器的IP地址或名称。
答案 1 :(得分:0)
据我所知,您正在尝试在计算机和运行SQL Server的远程计算机之间创建隧道。在您的ssh命令中,用远程计算机IP地址替换3306:localhost:3306。请注意,如果您与远程计算机不在同一本地网络中,则应该是其内部本地IP地址。检查您的SQL数据库权限,用户名和密码。