背景故事,我想建立闪亮的应用程序,给我们的一些数据采集者,让他们可以审查什么已经收集。目前,我们所有的数据都存放在基于云的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条答案
按热度按时间4urapxun1#
你的语法是正确的除了
你得去掉逗号。也就是说,您收到的错误与语法无关。
如果不知道设置的细节,就很难诊断。mysql数据库驻留在哪里?例如,如果它在awsrds示例上,那么主机不是标准的ip地址,它是这样的
假设您使用的ip地址是正确的,那么问题很可能出在服务器上。你需要确保3306号港口通车。否则,r将无法连接到db。