【问题标题】:Remote access to MySQL on my web server在我的 Web 服务器上远程访问 MySQL
【发布时间】:2014-05-01 16:02:50
【问题描述】:

我正在托管我自己的 Web 服务器,并尝试从我的笔记本电脑(而不是服务器)访问我的 MySQL 数据库。在我的笔记本电脑上,我在 config.inc.php 文件中添加了以下内容:

$i++;
$cfg['Servers'][$i]['verbose'] = 'xx.xxx.xxx.xxx';
$cfg['Servers'][$i]['host'] = 'xx.xxx.xxx.xxx';
$cfg['Servers'][$i]['port'] = '3306';
$cfg['Servers'][$i]['socket'] = '';
$cfg['Servers'][$i]['connect_type'] = 'tcp';
$cfg['Servers'][$i]['extension'] = 'mysqli';
$cfg['Servers'][$i]['auth_type'] = 'config';
$cfg['Servers'][$i]['user'] = 'nick';
$cfg['Servers'][$i]['password'] = 'xxxxxxx';
$cfg['Servers'][$i]['AllowNoPassword'] = true;

我在服务器上创建了一个名为“nick”的用户,拥有所有授权。我已经尝试了上面代码的很多不同配置,但我无法远程连接。

主机 IP 是我的路由器的 IP,它使用 DNS 将其链接到域名,我想它与这里需要的主机相同。我正在为我的网站转发 8080 端口,并在 DNS 中使用端口 80 重新路由。尝试从笔记本电脑连接到服务器时出现此错误:

错误 MySQL 说:文档

2002 - 连接尝试失败,因为连接方在一段时间后没有正确响应,或者连接失败,因为连接的主机没有响应。

服务器没有响应(或本地服务器的套接字配置不正确)。

有人请帮忙,我不想永远花在这个上:/我应该在网站上工作,而不是 MySQL 远程连接哈哈!

【问题讨论】:

  • 请澄清:您尝试连接的机器是路由器后面,还是路由器外面?你是通过路由器转发3306吗?目标机器的防火墙是否打开?您实际创建了哪些赠款?您正在使用的 ISP 是否完全阻止 3306(有些会)?
  • 目标机器是否设置为接受到my.cnf 中的3306 的入站连接(也就是说,它是否绑定到外部地址,并且skip-networking 未启用)?建立与远程数据库的连接有很多故障点。
  • @MichaelBerkowski 我的笔记本电脑和服务器机器都在同一个局域网上,使用同一个路由器。我的 ISP 没有阻止 3306。我没有转发 3306,我会尝试的。我是用 Wampserver 运行的,所以没有 my.cnf,不过 my.ini,你知道如何在 my.ini 中配置吗?
  • @MichaelBerkowski 我尝试转发端口,但仍然无法正常工作:/ 我只是希望能够在每次需要时无需将显示器、鼠标和键盘连接到服务器即可编辑数据库改变一下哈哈!
  • 刚刚修好了。我必须在我的 Windows 防火墙中为端口 3306 添加一个异常并转发它。

标签: mysql phpmyadmin remote-access


【解决方案1】:

MySQL 在 3306 端口上运行,它不会被阻塞。它不适合我。

然后确保你的mysql允许来自外部的连接。

只需编辑您的 my.cnf 文件

  • 如果您使用的是 Debian Linux,文件位于 /etc/mysql/my.cnf 位置。
  • 如果您使用的是 Red Hat Linux/Fedora/Centos,Linux 文件位于 /etc/my.cnf 位置。
  • 如果您使用的是 FreeBSD,您需要创建一个文件 /var/db/mysql/my.cnf 位置。

    $ nano my.cnf

下去直到找到[mysqld]

[mysqld]
user            = mysql
pid-file        = /var/run/mysqld/mysqld.pid
socket          = /var/run/mysqld/mysqld.sock
port            = 3306
basedir         = /usr
datadir         = /var/lib/mysql
tmpdir          = /tmp
language        = /usr/share/mysql/English
bind-address    = 65.55.55.2
# skip-networking

将“bind-address”修改为你的服务器的ip,以便它监听它(默认为localhost)。

【讨论】:

  • 我在服务器上使用 Windows XP,它正在运行 WAMPserver。它没有 my.cnf 而是一个 my.ini,有什么建议吗?
【解决方案2】:

在 Windows 防火墙中为端口 3306 创建一个例外。确保该端口也在被转发。

【讨论】:

  • 如果你是客户端,你是不是必须确保端口是从你端转发的,或者这是服务器所有者要做的事情?
  • 这是来自服务器端的。
猜你喜欢
  • 1970-01-01
  • 2017-04-21
  • 2012-12-13
  • 2023-03-10
  • 2016-01-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-11
相关资源
最近更新 更多