无法使用 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")
如果我像这样更改特权条件,那么它适用于基于 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'
我有两个系统,一个系统有 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")
如果我像这样更改特权条件,那么它适用于基于 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'