如何从云实例(最好从 R 中)访问笔记本电脑上 MySQL 服务器中的数据库?
How can access a database in MySQL server on my laptop from a cloud instance (preferably from within R)?
我想澄清几件事。
(我在 Ubuntu 16.04 上的远程虚拟机 运行 上安装了 mysql 客户端,目标是从 R 内部访问数据库,但到目前为止我一直在尝试使用 mysql 这样: mysql -u root -p -h fe80::883f:XXXX:XXX:XXXXX -P 3306
其中 "XXX" 当发出命令 ipconfig 时,我尝试了在 windows 命令行中获得的每个 IP 地址。
为了缩小我的故障排除范围,我需要一些建议:
- 我是否需要在 mysql 配置文件中为我的远程(云)实例提供 IP 地址(因此在目录 windows 中找到 my.cnf 或其等效项 mysql 服务器已安装并绑定 remote/cloud 虚拟机的地址,我正试图从我的笔记本电脑上访问数据库。
2 SSL,这是需要启用的东西吗?
此外,从 Bash 到 Ubuntu 到 Windows (WSL) 我可以使用 `mysql -u root 登录到 mysql 服务器-p'xxx' -h ' 即来自 windows 命令行 ipconfig 输出的 IP 地址称为 "Link-local IPv6 Address"。在浏览了几篇文章并发挥我的想象力(这让我在故障排除方面遇到了麻烦)之后,我觉得 MySQL 服务器目录中的某些配置文件必须 "bind the address" 用于远程虚拟机(我访问的通过我笔记本电脑上的腻子),我在思考正确的道路吗?
至于 root 用户在 mysql 服务器中的权限我相信我已经给了 root 所有权限(如下所示):
enter image description here
如果您要使用 RJDBC 包,您 必须 坚持使用 JDBC。 ODBC 可能是 "one letter off",但这不是一回事。
您需要准备一些东西:
- 你的 Windows 机器上的数据库必须 运行,从 Linux 机器可见,并且有一个 JDBC 驱动程序 JAR 可以让你连接给它。如果您告诉我您的数据库是 Microsoft Access,那么您就完成了。没有免费的 JDBC Access 驱动程序。
- 您必须在 Linux 机器上为您的数据库安装 JDBC 驱动程序 JAR,在 CLASSPATH R 将使用它来查找它。
- 您需要在 Linux 机器上安装 JDK。我建议您不要安装版本 8 之前的版本。
一旦到位,应该很容易。我已经做到了。
我解决了我的问题,可以通过远程访问访问我笔记本电脑上的 MySQL 服务器(我使用 putty 访问,如下所示:
在 putty 中首先使用 3307 作为源,检查远程单选按钮,将目标设置为 localhost:3306 并在 VM 中的 Bash 提示符处:
mysql -u root -p -h '127.0.0.1' -P 3307
或者来自Linux(我用的是WSL)Bash提示:
# 从 Windows Linux 子系统(WSL)访问远程虚拟机
ssh -R 3307:localhost:3306 blsingh@149.165.169.21
## 在 WSL 中从 Bash 提示访问我笔记本电脑上的 MySQL 服务器
mysql -u root -p -h'127.0.0.1' -P 3307
- 从这里不难弄清楚如何在 R 中访问它;我们有一个远程端口转发,我们在 R 中使用相同的参数。
☼
我想澄清几件事。
(我在 Ubuntu 16.04 上的远程虚拟机 运行 上安装了 mysql 客户端,目标是从 R 内部访问数据库,但到目前为止我一直在尝试使用 mysql 这样: mysql -u root -p -h fe80::883f:XXXX:XXX:XXXXX -P 3306
其中 "XXX" 当发出命令 ipconfig 时,我尝试了在 windows 命令行中获得的每个 IP 地址。
为了缩小我的故障排除范围,我需要一些建议:
- 我是否需要在 mysql 配置文件中为我的远程(云)实例提供 IP 地址(因此在目录 windows 中找到 my.cnf 或其等效项 mysql 服务器已安装并绑定 remote/cloud 虚拟机的地址,我正试图从我的笔记本电脑上访问数据库。
2 SSL,这是需要启用的东西吗?
此外,从 Bash 到 Ubuntu 到 Windows (WSL) 我可以使用 `mysql -u root 登录到 mysql 服务器-p'xxx' -h ' 即来自 windows 命令行 ipconfig 输出的 IP 地址称为 "Link-local IPv6 Address"。在浏览了几篇文章并发挥我的想象力(这让我在故障排除方面遇到了麻烦)之后,我觉得 MySQL 服务器目录中的某些配置文件必须 "bind the address" 用于远程虚拟机(我访问的通过我笔记本电脑上的腻子),我在思考正确的道路吗?
至于 root 用户在 mysql 服务器中的权限我相信我已经给了 root 所有权限(如下所示): enter image description here
如果您要使用 RJDBC 包,您 必须 坚持使用 JDBC。 ODBC 可能是 "one letter off",但这不是一回事。
您需要准备一些东西:
- 你的 Windows 机器上的数据库必须 运行,从 Linux 机器可见,并且有一个 JDBC 驱动程序 JAR 可以让你连接给它。如果您告诉我您的数据库是 Microsoft Access,那么您就完成了。没有免费的 JDBC Access 驱动程序。
- 您必须在 Linux 机器上为您的数据库安装 JDBC 驱动程序 JAR,在 CLASSPATH R 将使用它来查找它。
- 您需要在 Linux 机器上安装 JDK。我建议您不要安装版本 8 之前的版本。
一旦到位,应该很容易。我已经做到了。
我解决了我的问题,可以通过远程访问访问我笔记本电脑上的 MySQL 服务器(我使用 putty 访问,如下所示: 在 putty 中首先使用 3307 作为源,检查远程单选按钮,将目标设置为 localhost:3306 并在 VM 中的 Bash 提示符处: mysql -u root -p -h '127.0.0.1' -P 3307
或者来自Linux(我用的是WSL)Bash提示:
# 从 Windows Linux 子系统(WSL)访问远程虚拟机 ssh -R 3307:localhost:3306 blsingh@149.165.169.21
## 在 WSL 中从 Bash 提示访问我笔记本电脑上的 MySQL 服务器 mysql -u root -p -h'127.0.0.1' -P 3307
- 从这里不难弄清楚如何在 R 中访问它;我们有一个远程端口转发,我们在 R 中使用相同的参数。
☼