背景故事,我想构建闪亮的应用程序以提供给我们的某些数据收集器,以便他们可以查看已收集的内容。目前,我们将所有数据存储在基于云的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,并能够查看我通过该端口进行连接的尝试。
答案 0 :(得分:0)
您的语法正确,除了
port=3306,
您需要删除逗号。也就是说,您收到的错误与语法无关。
在不了解设置细节的情况下,很难诊断。 MySQL数据库驻留在哪里?例如,如果它在AWS RDS实例上,则主机不是标准IP地址,则类似这样
mydb.cm1abc2v4mod.us-west-1.rds.amazonaws.com
假设您使用的IP地址正确,那么问题很可能出在服务器上。您需要确保端口3306对通信开放。否则,R将无法连接到数据库。