【问题标题】:PHP How to allow mysql to connect from remote serverPHP如何允许mysql从远程服务器连接
【发布时间】:2018-01-31 07:14:18
【问题描述】:

我在 centos 7 上运行了 2 个 VPS。 VPS #1:192.164.64.76 VPS #2:192.164.64.19

在 VPS #2 我有一个名为 DBASE 的数据库。我需要从远程服务器(VPS #1)连接到它。我已经尝试了一切,但 MySQL 仍然不允许我连接。我需要一个分步指南来告诉我如何解决我的问题。 这是我的 PHP 代码(我把它放在 VPS #1 上)

<?php 
    DEFINE ('DB_USER_1', 'remoteuser');
    DEFINE ('DB_PASSWORD_1', 'dsdafdf4323fe');
    DEFINE ('DB_HOST_1', '192.164.64.19');
    DEFINE ('DB_NAME_1', 'dbase');

    $pol1 = @mysql_connect (DB_HOST_1, DB_USER_1, DB_PASSWORD_1)
OR die ('Nie mogłem się połączyć: ' . mysql_error() );
    @mysql_select_db (DB_NAME_1) OR die ('Nie mogłem wybrać bazy danych: ' . mysql_error() );
?>

给我错误:

无法连接到“192.164.64.19”上的 MySQL 服务器 (13)

【问题讨论】:

  • 停止使用已弃用+已删除的 mysql_* 库。切换到mysqli_*PDO。也不要使用错误跳过@。作为程序员,这会让你的工作变得更加困难。
  • 我不是 web-dev,我对 PHP 不是很熟悉,这只是代码的一部分。我只是在寻找如何为我的目的正确设置服务器的指南。
  • 删除您的详细信息。如果有人对使用您的凭据感兴趣,您可能会遇到大问题。不要提供任何实时凭据。立即删除它
  • 从同一台机器上的控制台尝试mysql -h 192.164.64.19 -u remoteuser -p dbase,看看是否可以使用 MySQL 客户端进行连接。我想知道(a)你有一个本地防火墙,(b)你有一个远程防火墙,或者(c)远程 MySQL 服务器只监听localhost
  • 警告:如果您只是学习 PHP,请不要学习过时的 mysql_query 接口。这很糟糕,已在 PHP 7 中删除。PDO is not hard to learn 之类的替代品和PHP The Right Way 之类的指南有助于解释最佳实践。确保确保您的用户参数为properly escaped,否则您将得到严重的SQL injection bugs

标签: php mysql database server


【解决方案1】:
DEFINE ('DB_USER_1', 'remoteuser');
DEFINE ('DB_PASSWORD_1', 'dsdafdf4323fe');
DEFINE ('DB_HOST_1', '192.164.64.19');
DEFINE ('DB_NAME_1', 'dbase');

$pol1 = mysqli_connect(DB_HOST_1, DB_USER_1, DB_PASSWORD_1)
OR die ('Nie mogłem się połączyć: ' . mysql_error() );
mysqli_select_db(DB_NAME_1) OR die ('Nie mogłem wybrać bazy danych: ' . mysql_error() );

【讨论】:

  • 检查你指向的主机是否与你有相同的网络
猜你喜欢
  • 2013-01-24
  • 1970-01-01
  • 1970-01-01
  • 2013-03-06
  • 2013-06-27
  • 2015-01-22
  • 2010-12-24
  • 2012-04-02
相关资源
最近更新 更多