6

我刚刚下载了 MySQL Workbench。

但我不太明白如何将它与远程服务器上的数据库同步。

工作台要求输入“主机名”,因此我提供了远程服务器的主机名。我指定端口 3306。

然后我提供一个用户名。这是我登录 PhpAdmin 时使用的用户名——我应该使用其他用户名吗?

然后我提供一个密码,同样是我用于 PhpAdmin 的密码。

但这不起作用。

奇怪的是,错误总是告诉我我的用户名是:username@current_network_im_using_to_access_the_internet

但这似乎不对 - 在 phpAdmin 上我的用户名显示username@localhost

我不太确定该怎么做。

你能帮助我吗?

4

3 回答 3

14

MySQL 将登录视为特定于它们源自的主机。您可以在家用计算机上使用与在服务器本身上使用的密码不同的密码,并且您可以从不同的源主机授予相同用户名的完全不同的权限集。

在 PHPMyadmin 上,数据库与 Web 服务器在同一台服务器上运行,因此将自身称为localhost, 带有 IP 127.0.0.1。安装 Workbench 的机器必须使用不同于username@localhost. 服务器要求您从您打算连接的任何主机授予对您的用户名的访问权限。

在 PhpMyAdmin 中,您需要从远程主机授予对数据库的访问权限:(另请参阅 Pekka 的回答,了解如何允许来自任何主机的连接)

GRANT ALL PRIVILEGES on dbname.* TO yourusername@your_remote_hostname IDENTIFIED BY 'yourpassword';

要查看您当前拥有的所有授权,localhost以便您可以为远程主机复制它们:

SHOW GRANTS FOR yourusername@localhost;

此外,首先需要设置 MySQL 服务器以接受远程连接。情况并非总是如此,尤其是在网络托管平台上。在my.cnf文件中,该skip-networking行必须被删除或注释掉。如果没有skip-networking行,则必须注释掉该行:

bind-address = 127.0.0.1 

...然后重新启动 MySQL。

于 2011-06-18T14:48:23.727 回答
1

您的 phpMyAdmin 似乎与数据库本身在同一台服务器上运行。

因此,它可以username@localhost用来连接到服务器。

您需要通过添加另一个用户username@%%意思是“任何主机”)使 mySQL 接受来自本地主机外部的连接。

但是请注意,这不是好的做法 - 如果您有静态 IP,请考虑限制对该地址的访问。

于 2011-06-18T14:47:22.300 回答
0

如果您打算使用MySQL 工作台来管理远程服务器中的 MySQL 数据库和表,我建议您通过 SSH 进行连接。通过关注许多文章和论坛,我尝试了许多其他方法,例如添加绑定地址、使用 uname@host 向 MySql 添加具有所有权限的新用户等,但就我而言,所有这些步骤都是在浪费时间,这些步骤将是如果您的服务器非常严格,则很有用。

请按照以下步骤操作。

  1. 单击 MySql 连接标题旁边的 + 按钮以添加新连接。
  2. 输入连接名称(无论您需要什么)。
  3. 选择连接方法 Standard TCP/IP over SSH。
  4. 输入 SSH 详细信息,例如主机(IP/域)、用户名和密码。(使用密码授权的 SSH 应该在服务器中启用)
  5. MySQL 主机详细信息,例如主机名(默认为 localhost 或 127.0.0.1)、端口(3306)、MySQL 用户名和密码。
  6. 然后点击测试连接。
于 2021-06-29T11:30:38.073 回答