我写了一个很棒的c#app,它使用了与mySQL数据库的连接。虽然应用程序正在开发中,但我只是在本地计算机上运行了mySQL服务器的一个实例,而c#app将在本地连接。现在是时候将数据库传输到一个也在运行mySQL服务器实例的远程服务器上。
我能够将整个数据库传输到新的服务器PC,现在我正在尝试远程连接,但遇到了多个问题。一个问题是(根据来自http://www.portcheckers.com/的测试)端口3306被阻止。 (根据pertcheckers,只有开放端口是端口22(ssh))
我对mySQL不是很好,但我想弄清楚如何建立远程连接。这是我到目前为止所尝试的:
mysql -h ***-SRVR1 -u root -p ****
这给出了错误:
Acess denied for user 'OBDC'@'192.168.1.***
由于portcheckers说只有端口22打开,我尝试使用mySQL工作台使用“TCIP SSH”选项建立连接无济于事。
任何人都可以帮我设置此连接吗?我有远程桌面访问服务器PC,我在我想要建立连接的本地机器上。
另外,我还没有批准远程访问。我现在尝试通过远程PC并运行:
GRANT ALL PRIVILEGES ON *.* TO 'USERNAME'@'%' IDENTIFIED BY 'PASSWORD' WITH GRANT OPTION;
看看是否有帮助
答案 0 :(得分:1)
打开端口3306进行远程访问是一个非常糟糕的主意。这太危险了。
您有三种选择:
第三个是复杂而繁重的任务,除非它是一个很大的应用程序并且你有很多资源,否则你不想要考虑。我从第一个开始,然后移动到第二个,如果你想要更坚固和灵活的东西。
要启动并运行选项1,您不必在服务器上安装任何额外的东西。查看是否可以ssh到远程计算机(如果您正在使用Windows,则使用来自客户端的putty,或者如果您使用的是Linux,则使用客户端命令行中的ssh
)。如果您可以登录,那么您需要查看文档中的端口转发:基本上您需要将一些本地端口(例如,8306)转发到远程端的端口3306。完成此操作后,您将ssh
保持运行状态,并告知客户端应用程序连接到localhost:8306
。它会神奇地将所有内容(加密)转发到ssh隧道,并将其传递到远端的端口3306(MySQL服务器)。