Phpmyadmin: 使用R远程连接到phpMyAdmin数据库。

创建于 2019-03-11  ·  5评论  ·  资料来源: phpmyadmin/phpmyadmin

我的问题

基本上,我希望能够使用R编程语言进行交互
通过phpMyAdmin提供的MySQL数据库。 现在我正试图
确定我尝试连接到该数据库的错误是否
因为我传递了错误的论据或是否只是某些东西
我处理所有事情的方式从根本上错了。

初步资料

我得到了以下信息以供使用:

  • 主机:tempdb.companyname.com/phpMyAdmin
  • 用户名:dbs_guest
  • 密码:guestpassword
  • 数据库名称:公司名称

我尝试过的方法和有效的方法

一些值得注意的事情:

  1. 我已经能够通过Chrome登录到phpMyAdmin并成功运行
    查询,所以我知道MySQL服务器正在工作并且登录信息是
    正确。
  2. 我还可以将数据库导出为.sql文件; 设置好了
    本地使用MariaDB直接访问它; 并已使用
    R和相关的R包。

换句话说,远程数据库似乎都不是问题。
本身,我安装的MariaDB,
或带有R及其包。 [注意:我当前有权访问的数据库
仅代表完整数据库的一小部分,因此请下载所有内容
在本地不是可行的选择]。

我正在寻找的解决方案

现在,我正在尝试找出我在R中使用的变量
建立连接的函数是错误的(如果是这种情况,
应该使用替代),或者如果我只是去它都错了-也许
因为关于phpMyAdmin的根本区别是
失踪。 如果事实确实如此,我想知道需要什么
建立连接(例如,我是否需要
MySQL服务器本身是否可以远程连接?)。

为了让您了解我尝试使用的值,下面是一个示例
我尝试过的R代码:

con <- dbConnect(RMariaDB::MariaDB(),
                 host = 'tempdb.companyname.com/phpMyAdmin',
                 dbname = 'companyname',
                 user = 'dbs_guest',
                 password = 'guestpassword')
temptable <- tbl(con, "temptable")

特别是,我不确定“ host ”的值是否正确,尤其是
因为登录后我登录的服务器名称为“服务器:通过UNIX套接字的Localhost”。
另外,是否需要将“用户”列为“ dbs_guest @ localhost ”(因为当
登录到phpMyAdmin)或“主机”值所暗示的内容。 最后,
我也可以传递“ port ”参数,但我不知道那会是什么
无论如何。 哦,我不确定这是否取决于我目前是否
在运行这些命令时登录phpMyAdmin(例如使用Chrome)。

重申一下,我只是想找出有关phpMyAdmin的信息
这使得我要尝试做的事情变得不可能(而我需要做的事情)
或者如果我刚把变量值弄错了。

谢谢你的耐心。

真诚的
史蒂夫

其他背景

phpMyAdmin
  • phpMyAdmin版本:4.0.10deb1
数据库服务器
  • 服务器:通过UNIX套接字的Localhost
  • 服务器类型:MySQL
  • 服务器版本:5.5.41-0ubuntu0.14.04.1-(Ubuntu)
  • 协议版本:10
  • 用户: dbs_guest @ localhost
  • 服务器字符集:UTF-8 Unicode(utf8)
网络服务器
  • Apache / 2.4.7(Ubuntu)
  • 数据库客户端版本:libmysql-5.5.41
  • PHP扩展名:mysqli
question wontfix

最有用的评论

默认情况下,大多数MySQL安装都会阻止传入的网络连接。 为了直接从外部地址(例如本地计算机上运行的应用程序)进行连接,您必须将MySQL端口公开给互联网。 通常,这是一种不良的安全做法。 很多时候,phpMyAdmin与MySQL实例在同一台服务器上运行,因此它要么连接到本地主机地址(127.0.0.1),要么通过UNIX套接字文件(这就是phpMyAdmin所做的)连接。

在phpMyAdmin本身中,我们故意不包含任何直接将传入的连接反射或重定向到MySQL的方法,因为这几乎像暴露MySQL一样,直接将MySQL端口开放到Internet,这也是一个非常糟糕的主意。 这就是为什么将phpMyAdmin URL本身用作连接字符串不起作用的原因。 您正确的是在这里需要服务器IP地址(或主机名)。

通常,您有三个选项可用于连接到远程MySQL / MariaDB实例:

  1. 直接暴露端口(我建议反对),
  2. 将您的应用程序直接托管在服务器上并进行远程访问(例如phpMyAdmin,WordPress或许多其他工具,尽管我不知道R是否可以这种方式使用),或者
  3. 通过某些自定义应用程序公开服务器上的API,该应用程序托管在MySQL服务器上,您的本地应用程序可以直接连接到该API。

不幸的是,phpMyAdmin不能帮助您解决这些问题。

所有5条评论

@SplashDance我很困惑,您知道phpMyAdmin只是一个Web界面,而不是数据库服务器,对吗?

我不明白为什么R与phpMyAdmin有关系?

抄送@ibennetch
cc @mauriciofauth

我是否误解了您的问题?

对。 我得到了phpMyAdmin一个与数据库服务器而非服务器本身进行交互的接口。 或者,至少,我有些模糊的理解,要与服务器交互,我必须通过phpMyAdmin。

但现在我只有phpMyAdmin的地址,工作,和我的想法(和我,这可能是遥远),我将不得不在效果上连接到通过phpmyadmin所述数据库莫名其妙。

我必须通过phpMyAdmin。

我认为不会,据我所知,我们不提供任何与数据库交互的API或方法。
唯一的方法是人与界面的交互

您是否尝试过将R连接到mysql,如http://stla.github.io/stlapblog/posts/RMySQL.html建议?

但是现在我只有phpMyAdmin地址可以使用

也许数据库服务器与数据库位于同一台机器上,这就是为什么只有主机名“ phpmyadmin” /数据库的原因? 服务器

这是否回答了您@SplashDance的问题?

默认情况下,大多数MySQL安装都会阻止传入的网络连接。 为了直接从外部地址(例如本地计算机上运行的应用程序)进行连接,您必须将MySQL端口公开给互联网。 通常,这是一种不良的安全做法。 很多时候,phpMyAdmin与MySQL实例在同一台服务器上运行,因此它要么连接到本地主机地址(127.0.0.1),要么通过UNIX套接字文件(这就是phpMyAdmin所做的)连接。

在phpMyAdmin本身中,我们故意不包含任何直接将传入的连接反射或重定向到MySQL的方法,因为这几乎像暴露MySQL一样,直接将MySQL端口开放到Internet,这也是一个非常糟糕的主意。 这就是为什么将phpMyAdmin URL本身用作连接字符串不起作用的原因。 您正确的是在这里需要服务器IP地址(或主机名)。

通常,您有三个选项可用于连接到远程MySQL / MariaDB实例:

  1. 直接暴露端口(我建议反对),
  2. 将您的应用程序直接托管在服务器上并进行远程访问(例如phpMyAdmin,WordPress或许多其他工具,尽管我不知道R是否可以这种方式使用),或者
  3. 通过某些自定义应用程序公开服务器上的API,该应用程序托管在MySQL服务器上,您的本地应用程序可以直接连接到该API。

不幸的是,phpMyAdmin不能帮助您解决这些问题。

首先,我要说的是,我真的很感谢您的所有答复(特别是考虑到我最初提出的问题的业余态度),并且我特别感谢以撒的答复-这特别有思想并且非常有帮助。

如果有的话,最终得到一个确定的答案是一种解脱,这样我就不必再浪费时间尝试不同的函数参数组合了,等等。

再次感谢您的宝贵时间。
真诚的
史蒂夫

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

KDCinfo picture KDCinfo  ·  3评论

AlexeyKosov picture AlexeyKosov  ·  3评论

ChrisHSandN picture ChrisHSandN  ·  3评论

saulotoledo picture saulotoledo  ·  3评论

barkermn01 picture barkermn01  ·  3评论