从 Mysql Workbench 连接到同一网络但不同机器上的数据库

从 Mysql Workbench 连接到同一网络但不同机器上的数据库

我的本地网络上运行着一个 Web 服务器/数据库服务器。我已将静态 IP 设置为 192.168.1.210。我在服务器上安装了 mysql,并将 my.cnf 绑定地址设置为静态 IP。

我正在尝试使用我的开发机器上的 mysql workbench 连接到该数据库(在不同的机器上但在同一个本地网络中),以便我可以通过 gui 管理数据库,而不必通过 SSH 来管理它。

我尝试使用静态 IP 作为主机、默认 3306 端口建立新连接。我尝试在工作台上通过标准 TCP/IP 和通过 SSH 建立 TCP/IP 连接,但无法连接。

我知道服务器网络连接正常,因为我可以通过 SSH 顺利进入。我尝试在 Workbench 中使用 root 作为用户名,但从未遇到过要求我输入密码的情况。

那里有指南吗?我似乎找不到任何好的资源。

答案1

有几件事我必须要做。

首先从本地机器(服务器,但我使用了 ssh)使用 root 登录 mysql 并添加一个新的远程用户。

mysql -u root -p

它会提示输入密码。然后创建一个可以从任何地方访问的新用户。

CREATE USER 'username'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'username'@'%';
FLUSH PRIVILEGES;

然后退出并重新启动mysql。

sudo service mysql restart

我还必须编辑 /etc/mysql/my.cnf 并注释掉 bind-address 行,该行通常设置为 127.0.0.1,这意味着基本上只允许从本地机器进行访问。

最后但并非最不重要的一点是,我正在使用基本的 ubuntu 服务器防火墙,所以我必须允许访问端口 3306(默认 mysql 端口,也可以在 my.cnf 中更改)。

sudo ufw allow 3306

然后检查状态以确保其有效。

sudo ufw status

您将在列表中看到端口 3306。

您可以使用以下命令使用新用户名测试对数据库的访问。

mysql -h <server ip address> -u username -p

它将提示您输入新密码并正确连接。

我被防火墙部分难住了。我从来没想过要检查一下。

相关内容