【问题标题】:Error in mysql_connect() using ZZEE between two PC在两台 PC 之间使用 ZZEE 在 mysql_connect() 中出错
【发布时间】:2016-09-29 13:38:46
【问题描述】:

我用 PHP 开发了一个项目,并使用 ZZEE PhpExe 将其转换为 project.exe,它在安装了 WAMP 的一台 PC 上运行良好。

我使用 LAN 将另一台 PC 连接到主服务器并共享已编译的 project.exe。我能够在另一台 PC 上打开该项目,但它无法连接到 MySql。通过显示此错误

警告:mysql_connect() [function.mysql-connect]:无法连接到第 13 行/www/inc/connect.php 中的“localhost”(10061) 上的 MySQL 服务器

我尝试使用 Firefox 进行检查,并且通过使用浏览器可以正常工作而不会出现错误或警告。我去将我的 connect.php 服务器名称更改为 LAN IP。例如

$hostname = "本地主机";到 $hostname = "192.168.1.3";

更改后我重新编译项目,然后是另一个警告:

警告:mysql_connect(): Host 'DESKTOP-VLU1NVA' is not allowed to connect to this MySQL server in C:\xampp\htdocs\clinicx\inc\connect.php on line 13

请有人告诉我该怎么做。

【问题讨论】:

  • mysql_ 函数已弃用,不应再使用。相反,请使用 MySQLi 或 PDO。
  • 根据@AntoineB 的评论,您应该避免使用mysql_xxx 函数。十多年来,它们一直被认为是不好的做法,并且已完全从最新的 PHP 版本中删除。这意味着如果您升级 PHP 版本,您的代码将无法工作。现在修复它,因为如果你以后不得不匆忙修复它,这对你来说将是一个更大的问题。

标签: php mysql


【解决方案1】:

您需要授予远程 PC 访问 MySQL 服务器的权限。查看 MySQL 的 GRANT 命令:http://dev.mysql.com/doc/refman/5.7/en/grant.html

一个非常不安全的方法是:

GRANT ALL ON *.* to '<a username>'@'192.168.1.%';

不要将其用于生产,请确保仅授予对所需内容的访问权限并添加密码。

【讨论】:

  • 如果我从 phpmyadmin 添加新权限,它会起作用吗?我是否必须更改 connect.php 配置? $hostname = "localhost"; $username = "root"; $password = ""; $dbh1 = mysql_connect($hostname, $username, $password); $dbh2 = mysql_connect($hostname, $username, $password, true); $dbh3 = mysql_connect($hostname, $username, $password, true); mysql_select_db('clinic_r', $dbh1); mysql_select_db('clinic_x', $dbh2); mysql_select_db('clinic', $dbh3);
  • 新的(远程)服务器必须连接到原始服务器的 IP 地址,而不是“localhost”(正如您在问题中自己写的那样),所以使用 $hostname = "192.168.1.3";有了这个,下面应该给你访问权限:GRANT ALL ON *.* to 'root'@'192.168.1.%';
猜你喜欢
  • 1970-01-01
  • 2017-01-10
  • 2023-03-18
  • 2021-03-03
  • 2016-11-19
  • 2022-01-08
  • 1970-01-01
  • 1970-01-01
  • 2011-05-17
相关资源
最近更新 更多