2014-07-25 127 views
0

我的新數據庫有問題。訪問數據庫的唯一方法是拋出一個SSH隧道。但它不工作...通過SSH隧道連接MySQL數據庫

我用下面的命令:

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) 

你有什麼想法或我做錯了什麼?

非常感謝!

回答

1

假設您所有的權限都沒問題,可能需要換localhost換取127.0.0.1

按MySQL的文檔:http://dev.mysql.com/doc/refman/5.5/en/connecting.html

On Unix, MySQL programs treat the host name localhost specially, in a way that is likely different from what you expect compared to other network-based programs. For connections to localhost, MySQL programs attempt to connect to the local server by using a Unix socket file. This occurs even if a --port or -P option is given to specify a port number. To ensure that the client makes a TCP/IP connection to the local server, use --host or -h to specify a host name value of 127.0.0.1, or the IP address or name of the local server.

0

據我所知,你要創建您的計算機並且正在運行SQL Server的遠程計算機之間的隧道。在您的ssh命令中用遠程計算機IP地址替換3306:localhost:3306。請注意,如果您不在遠程計算機所在的同一本地網絡中,它應該是其內部本地IP地址。檢查你的SQL數據庫的權限,用戶名和密碼。