无法使用 SSH 隧道调用远程 MySQL 数据库

Cannot call Remote MySQL database using SSH tunneling

我有两个系统,一个系统有 MySQL 数据库(IP 地址是 192.168.0.149-运行ning in centos),另一个系统有 Web 应用程序(IP 地址 192.168.0.55 -运行宁 windows)。我正在从 Web 应用程序远程调用数据库。我想用ssh连接数据库,所以我用putty来做。

首先我运行 putty 发起端口转发,从3535端口到192.168.0.149:3306.

我像这样从我的应用程序调用

orm.RegisterDataBase("default", "mysql", "john:john1@tcp(127.0.0.1:3535)/employee?
charset=utf8&parseTime=True")

我在主机 MySQL 数据库中像这样创建一个用户

mysql>create user john
mysql>GRANT CREATE,DELETE,SELECT,UPDATE ON employee.* TO 'rahul'@'192.168.0.55' IDENTIFIED 
BY 'john1'

现在我 运行 我的网络应用程序。当我 运行 它时,我收到以下错误

 [ORM]2017/03/01 16:18:57 register db Ping `default`, Error 1045: Access denied for user 
'john'@'192.168.0.149' (using password: YES)

WORKING SCENARIOS

如果我不使用SSH,而是直接从应用程序调用数据库,那么这个用户访问员工数据库是没有问题的。

   orm.RegisterDataBase("default", "mysql", "john:john1@tcp(192.168.0.149:3306)/employee?
    charset=utf8&parseTime=True")
  1. 如果我像这样更改特权条件,那么它适用于基于 ssh 的远程数据库连接

    sql>GRANT CREATE,DELETE,UPDATE,SELECT ON employee.* TO 'john'@'%' IDENTIFIED BY 'john1'
    

但我不想这样做,因为它会接受来自本地所有系统的连接 network.I 只想授予对 192.168.0.55 的访问权限。

您的凭据不匹配。

您已授予对 'rahul'@'192.168.0.55' 的访问权限,但您正在以 'john'@'192.168.0.149' 的身份进行连接。

尝试向实际连接的用户授予访问权限:

GRANT CREATE,DELETE,SELECT,UPDATE ON employee.* TO 'john'@'192.168.0.149' IDENTIFIED BY 'john1'