将R连接到远程MySQL服务器-无法连接到服务器

时间:2018-12-12 15:02:46

标签: mysql r rmysql

背景故事,我想构建闪亮的应用程序以提供给我们的某些数据收集器,以便他们可以查看已收集的内容。目前,我们将所有数据存储在基于云的MySQL服务器中。理想情况下,我希望闪亮的应用程序直接从MySQL服务器提取数据,这样它可以完全自动化,而无需进行任何数据提取和24/7的更新。

我一直试图首先使用RMySQL软件包在R和MySQL之间建立连接,但似乎无法使其正常工作。我为此连接设置了一个只读的特定用户名/密码(但是我也尝试了具有所有特权的常规用户名)。这是我正在运行的代码;

mydb=dbConnect(
   MySQL(), 
   user='myuser', 
   password='mypass', 
   dbname='vgtg', 
   host='ipaddress',
   port=3306,
   )

显然,为了在此处发布,服务器的“ ipaddress”已更改,但这是一个通用的地址,例如

  '192.168.1.1'

当我运行上面的代码时,我收到此错误消息;

Error in .local(drv, ...) : 
  Failed to connect to database: Error: Can't connect to MySQL server on 
 'ipaddress' (0)

我尝试查找以前发布的问题,但似乎没有一个完全是我收到的此错误消息。这让我认为,出于某种原因,RMySQL实际上是基于云的远程服务器,因此正在本地寻找该服务器。

此外,我还应该设置服务器端以允许连接吗?我确实有服务器管理员可以提供帮助,但是我不确定他对R有多熟悉,同样,我对服务器的使用也不太熟悉。他为我打开了端口3306,并能够查看我通过该端口进行连接的尝试。

1 个答案:

答案 0 :(得分:0)

您的语法正确,除了

port=3306,

您需要删除逗号。也就是说,您收到的错误与语法无关。

在不了解设置细节的情况下,很难诊断。 MySQL数据库驻留在哪里?例如,如果它在AWS RDS实例上,则主机不是标准IP地址,则类似这样

mydb.cm1abc2v4mod.us-west-1.rds.amazonaws.com

假设您使用的IP地址正确,那么问题很可能出在服务器上。您需要确保端口3306对通信开放。否则,R将无法连接到数据库。