【发布时间】:2017-07-20 13:16:21
【问题描述】:
我有两个系统,其中一个系统具有 MySQL 数据库(IP 地址为 192.168.0.149-在 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)
工作场景
如果我不使用 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'
但我不想这样做,因为它会接受来自本地网络的所有系统的连接。我只想授予对 192.168.0.55 的访问权限。
【问题讨论】:
标签: mysql ssh-tunnel