【发布时间】: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。