【问题标题】:Unable to Connect to MySQL on Apache Server无法连接到 Apache 服务器上的 MySQL
【发布时间】:2020-12-03 23:17:51
【问题描述】:

我正在尝试设置一个新的本地网络服务器。 Apache 已经在运行并且 php 正在运行。安装了mysql。我可以通过 MySQL 工作台运行 mysql。但是,我无法从 php 文档连接到 MySQL。

首先,我查看的指南说要在 php.ini 中添加扩展名。我去了 php.ini-development 并取消了该行的注释:

extension=mysqli

重新启动服务器后,这没有帮助。我还尝试了 extension=php_mysqli 和 php_mysqli.dll 等变体。

事实上,我的计算机上确实有 mysql dll。它在:

C:\php\ext\php_mysqli.dll

我的电脑说这个dll自从我下载后就没有被访问或修改过,所以Apache根本没有动过它。

代码如下:

<?
$servername = "localhost";

$username = "root";

$password = "*************";

$conn = new mysqli($servername, $username, $password);

if ($conn->connect_error) {

  die("Connection failed: " . $conn->connect_error);

}

echo "Connected successfully";

?> 

我收到此错误:

致命错误:未捕获的错误:在 C:\Websites\x.php:14 中找不到类 'mysqli' 堆栈跟踪:#0 {main} 在第 14 行的 C:\Websites\x.php 中抛出

MySQL设置为3306端口,httpd.conf中mysqli.default_port设置为3306。

这是 Windows 10。MySQL 版本是 8.0.2。如何让 PHP 使用 mysql 库/与 MySQL 对话?

编辑: 与How to solve "Fatal error: Class 'MySQLi' not found"? 不同。 我已经尝试了那里的解决方案,但到目前为止没有一个答案有效。

【问题讨论】:

标签: php mysql apache mysqli


【解决方案1】:

首先,确保您正在编辑“正确”的 php.ini 文件。您的系统上可能有多个 php.ini 文件,因此请执行此 PHP 代码以查看在您的数据库连接脚本的上下文中加载了哪些 php.ini:

var_dump(php_ini_loaded_file());

然后,尝试在这个 php.ini 中指定 MySQLi DLL 文件的绝对路径,如下所示:

extension=C:\php\ext\php_mysqli.dll

注意:修改php.ini后不要忘记重启Apache服务器。

【讨论】:

  • 非常感谢,它刚刚连接!现在我看到有两个错误。首先,我在 php.ini-development 而不是 php.ini。其次,它需要 dll 的绝对路径,而不仅仅是 dll 名称。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-12
  • 2012-02-08
  • 2021-02-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多