更新

更新

我有这些用户MySQL数据库

mysql> select User,Host from mysql.user;                                                             
+------------------+-----------+                                                                     
| User             | Host      |                                                                     
+------------------+-----------+                                                                     
| root             | 127.0.0.1 |                                                                     
| root             | ::1       |                                                                                                                                         
| debian-sys-maint | localhost |                                                                     
| root             | localhost |                                                                     
+------------------+-----------+                                                                     
5 rows in set (0.00 sec)                                                                             
                                                                                                     
mysql>                                                                                               

我的虚拟机里有一个用户kyo

VM 中的用户与 MySQL 中的用户不同吗?

我需要kyo在 MySQL 中创建另一个用户吗?

我需要做什么才能从本地机器远程连接到 MySQL?


我添加了一个用户

select User,Host from mysql.user;
CREATE USER 'kyo'@'24.62.137.111' IDENTIFIED BY 'p4$$w0rd';
GRANT ALL PRIVILEGES ON * . * TO 'kyo'@'24.62.137.111';
FLUSH PRIVILEGES;
select User,Host from mysql.user;

我现在看到了

mysql> select User,Host from mysql.user;
+------------------+---------------+
| User             | Host          |
+------------------+---------------+
| root             | 127.0.0.1     |
| kyo              | 24.62.137.111 |
| root             | ::1           |
| root             | iggy          |
| debian-sys-maint | localhost     |
| root             | localhost     |
+------------------+---------------+
6 rows in set (0.00 sec)

我不断得到

2013 - 在“读取初始通信包”时与 MySQL 服务器失去连接,系统错误:0“内部错误/检查(非系统错误)”


更新

我运行了 nmap 扫描

我看到了

PORT     STATE    SERVICE                                                                            
3306/tcp filtered mysql 

这是否意味着我的端口 3306 不对外开放?我应该进行远程访问?对吗?

答案1

Navicat 似乎有为 MySQL 连接创建 SSH 隧道的选项。

当您创建新连接时

NaviCAT 常规选项卡

无论您在那里建立了什么连接 - 您都可以使用 Root 用户名/密码。如果您想为 MySQL 创建单独的用户名/密码 - 您也可以这样做。主机是 localhost(因为您正在本地连接)。

NaviCAT SSH 选项卡

在 SSH 选项卡中 - 输入您的 SSH 凭据(如何通过 SSH 进入 VM)。

回答你的问题:

  • VM 中的用户与 MySQL 中的用户不同吗?是的。VM 上的用户 kyo 与 MySQL 中的 kyo 是不同的用户 - 并且它也可以有不同的密码。
  • 我需要在 MySQL 中创建另一个 kyo 用户吗?如果你更喜欢
  • 我需要做什么才能从本地机器远程连接到 MySQL?如上所述 - SSH 隧道到您的 MySQL 实例。

(注:个人观点)除非绝对必要,否则我不会公开 MySQL 实例。将其留在 VM 后面并通过 SSH 隧道在本地访问它。


编辑(提供澄清):

  • MySQL 服务器已经在端口 3306 上“打开”,但根据你的 mysql db - 它只接受来自某些帐户的连接(root@localhost 和[电子邮件保护])。
  • VM 本身有自己的一套规则(用于允许传入连接)。您需要在 VM 上打开端口 3306。
  • 您需要更改“kyo”用户名以允许本地主机连接(不是该 IP),因为您不是直接从您的机器(24.62.137.111)连接到 MySQL 服务器。您正在连接到虚拟机上的 SSH 服务器 - 然后通过本地主机连接到 MySQL 服务器。将 mysql 上的 kyo 编辑为 kyo@localhost - ssh 隧道将正常工作。

相关内容