如何在 MacOS 上安装 MySQLi

Posted

技术标签:

【中文标题】如何在 MacOS 上安装 MySQLi【英文标题】:How to install MySQLi on MacOS 【发布时间】:2011-11-07 04:47:03 【问题描述】:

我找不到有关在 Mac 上安装 mysqli 的说明。需要说明的是,MySQL 是最新的,我正在运行 php 5。如何安装它?我什至从哪里得到它?谢谢你的帮助。我将向回答此问题的人投赞成票并打勾!

【问题讨论】:

【参考方案1】:

使用php-mysqlnd 而不是php-mysql。在 Linux 上,使用apt-get 安装:

apt-get install php-mysqlnd

【讨论】:

这很有帮助。我有 php5-mysql 并且每当我尝试通过 mysqli 连接时页面返回空响应。即使 phpinfo 显示 mysqli 已加载,Chrome 中的响应消息为空,Firefox 中的连接重置。 当你将 Docker 与过时版本的 PHP 一起使用时,事实证明 apt-get 不是为 PHP 模块安装库的正确方法:无论你使用什么版本的 PHP,它都会获取新版本'正在使用。幸运的是,有一个很棒的实用程序 docker-php-ext-install - 它可以轻松地将所需的模块库添加到您的 PHP 安装中。希望这会对某人有所帮助。 您为 php 5 呈现,较新版本应为 apt-get install php-mysqlnd 为什么? mysqlnd和mysqli有什么区别? @AndreasHartmann 这似乎是“我使用这个晦涩的版本,因为他们优化了 XX 行”的答案之一,但 Package 'php-mysqlnd' has no installation candidate 具有标准配置,所以我建议使用 ***.com/a/37910795/461982【参考方案2】:

MySQLi 是 PHP 的一部分。应该有一个 php-mysqli 类型的包可用,或者您可以获取 PHP 源并重新编译启用的 mysqli。您可能已经安装了它,但它是作为一个模块完成的并且被禁用。检查你的 php.ini 是否有 extension=mysqli.so 或类似的。它可能被注释掉,或者 .so 文件存在于您的扩展目录中,但未通过该 extension= 指令链接到 PHP。

【讨论】:

您需要下载以使其工作的包的名称是php5-mysql。通常,它会在安装后自动激活模块,因此您实际上不需要修改 php.ini 文件。 我只是 yum install php-mysqli 然后重新启动 apache(在 centos 6.8 service httpd restart 上)并且它工作。这是在克服了 yum install php-mbstring 类似解决的“mbstring”错误之后【参考方案3】:

这是我在基于 Debian 的机器 (ubuntu) 上安装它的方式:

php 7:

sudo apt-get install php7.0-mysqli

php 5:

sudo apt-get install php5-mysqli

【讨论】:

在 alpine docker 映像上,如果您需要手动安装,则为 apk add --update php-mysqli 你能帮我在windows中为php7启用mysqli() @Shambhu The answer below 没有帮助?【参考方案4】:

这篇文章讲得很清楚,如何用 EachApache 安装 MySqli。这也适用于我。

使用 EachApache 安装 mysqli:

    以“root”用户身份登录 WHM。

    要么搜索“EasyApache”,要么转到“软件”>“EasyApache”

    向下滚动并选择构建选项(以前保存的配置)

    点击开始“根据配置文件开始自定义”

    选择Apache的版本,点击“下一步”。

    选择PHP版本,点击“下一步”。

    在“短选项列表”中选择其他选项

    选择“详尽的选项列表”并查找“MySQL 改进扩展”

    点击“保存并构建”

【讨论】:

对于那些正在使用 WHM 的人来说,这正是我所需要的。感谢您发布! 我在仪表板上看不到软件 > EasyApache。我在哪里可以找到它? 谢谢。正是我需要的。 请注意,您的链接现在返回错误 404 消息:( 可能来源:linuxquestions.org/questions/linux-newbie-8/…【参考方案5】:

您应该在 php.ini 文件中编辑 行(我在此示例中使用的是 windows):

-第一个是关于扩展目录位置。见下文:

; Directory in which the loadable extensions (modules) reside.
; http://php.net/extension-dir
; extension_dir = "./"
; On windows:
extension_dir = "C:/php/ext"

-第二个是关于扩展本身:

extension=php_mysqli.dll

仅修改(取消注释)延长线对我来说是不够的。希望对你有帮助

【讨论】:

他的mac不太可能运行windows。 我在 Windows 上,这很有帮助,所以我想我们可以称之为附带帮助,谢谢。哦,感谢 PHP 提供合理的默认参数,天哪,这是一种垃圾语言。 我已经取消了这两行的注释。即便如此,我还是遇到了Call to undefined function mysqli_connect() 的错误,我还需要在这里做什么。请帮助【参考方案6】:

这里是安装细节的链接: http://php.net/manual/en/mysqli.installation.php

如果您使用的是 WindowsLinux: - 在大多数情况下,安装 PHP 和 MySQL 软件包时会自动安装 MySQLi 扩展。

【讨论】:

【参考方案7】:

对于 Windows:3 个步骤

第一步: 只需要在php.ini中给出ext文件夹路径

这里

; Directory in which the loadable extensions (modules) reside.
; http://php.net/extension-dir
; extension_dir = "./"
; On windows:
 extension_dir = "C:\php7\ext"

第 2 步: 删除评论

extension=php_mysqli.dll

第 3 步: 重启 Apache 服务器。

【讨论】:

【参考方案8】:

由于您使用的是 Mac,请打开终端,然后

cd /etc

找到 php.ini,然后 sudo 打开它,例如,使用 nano 编辑器

纳米 php.ini

找到使用control+w搜索“mysqli.default_socket”,换行为

mysqli.default_socket = /tmp/mysql.sock

使用 control+x 然后按“y”和“return”来保存文件。必要时重启 Aapche。

现在你应该可以运行mysqli了。

【讨论】:

【参考方案9】:

我最近放弃了 Xampp,转而使用 Mac Sierra 上的本机 Apache,因为项目需要新的 php。 Sierra 附带 php 5.6.25,但它没有开箱即用 mysql_*,经过大量谷歌搜索,我发现这个网站真的很有帮助 - https://php-osx.liip.ch。事实证明 php 5.6.25 确实支持 mysql_* 但未启用。选择你的php版本并下载它,它会为你的php生成一个合适的php.ini,然后你就可以开始了

【讨论】:

【参考方案10】:
sudo apt-get -y -f install php7.0-mysql

【讨论】:

成功了!但我很困惑,我想安装 mysqli 扩展,所以我整天搜索 mysqli.so。我从来没有想过这个问题会通过安装php7.0-mysql来解决。那么 mysqli 和 php7.0-mysql 之间的关系是什么,为什么你会有安装 php7.0-mysql 的想法。【参考方案11】:

如果您使用 ubuntu 16.04(可能及更高版本),请执行此操作

 sudo phpenmod mysqli
 sudo service php7.0-fpm restart

【讨论】:

【参考方案12】:

我遇到了同样的问题,我从 WHM 转到 EasyApache4,点击自定义按钮,然后点击 PHP 扩展选项卡。我选择并安装了扩展程序 php72-php-mysqlnd,我的问题已解决

【讨论】:

【参考方案13】:

Docker官方php containers上的mysqli:

支持 mysqli 的标记 php 版本可能仍然没有配置开箱即用的 mysqli,您可以使用 docker-php-ext-install 实用程序安装它(请参阅 Konstantin 的评论)。这是内置的,但也可以从docker-php-extension-installer project 获得。

它们可用于在 Dockerfile 中添加 mysqli,例如:

FROM php:5.6.5-apache
COPY ./php.ini /usr/local/etc/php/
RUN docker-php-ext-install mysqli

或在使用通用 php 容器的 compose 文件中,然后将 mysqli 安装作为安装步骤注入command

  web:
    image: php:5.6.5-apache
    volumes:
      - app:/var/www/html/
    ports:
      - "80:80"
    command:  >
      sh -c "docker-php-ext-install mysqli &&
             apache2-foreground"

【讨论】:

【参考方案14】:

由于这些答案中的许多都是旧的,这里是如何为 Easyapache 4 安装 mysqli。

如果您尝试在 WHM 中的 PHP 扩展下搜索 mysqli,您将找不到它。要知道安装 mysqli 需要哪个扩展,您需要在终端中运行此命令

repoquery -q --whatprovides 'ea-php70-php-mysqli' | sort -V | tail -1

应该返回类似的东西

ea-php70-php-mysqlnd-0:7.0.33-1.1.4.cpanel.x86_64

您真正需要的只是 mysqlnd 复制它

使用 EachApache4 安装 mysqli:

登录 WHM。 搜索“EasyApache4” 在顶部查找“当前安装的软件包”,然后单击“自定义”按钮 在左侧面板上单击“PHP 扩展” 搜索 mysqlnd 您应该会看到类似“php70-php-mysqlnd”的内容 切换开关以启用它 在左侧面板上点击评论 点击底部的“配置” 大功告成

【讨论】:

【参考方案15】:

在 php 5.3.0 及更高版本上,您不需要在 windows 上专门安装 mysqli。 而是遵循如下所示的简单步骤。

找到 php.ini 文件 [如果没有,则表示您没有将 php.ini-development 或 php.ini-production 文件复制为 php.ini 来进行配置]

有两件事要做 1.取消注释并设置正确的路径extension_dir =“ext”基本上设置你在php中找到ext文件夹的路径,即使它在你运行php-cgi.ex的同一文件夹中

    取消注释 mysqli 库扩展 extension=mysqli

注意:在这个 php.ini 文件中取消注释是通过删除 start ;从线。

【讨论】:

不要针对不同的问题发布相同的答案。回答一次并投票以关闭所有其他重复的问题。 另外,您应该检查您要发布的答案是否已经发布。【参考方案16】:

要解决这个问题,你应该运行

sudo apt-get install php7.4-mysqli

【讨论】:

Illuminate\Database\QueryException 在供应商/laravel/framework/src 找不到驱动程序(SQL: select * from information_schema.tables where table_schema = Cplus and table_name = migrations and table_type = 'BASE TABLE') /Illuminate/Database/Connection.php:671 667▕ // 如果在尝试运行查询时发生异常,我们将格式化错误 668▕ // 消息以包含与 SQL 的绑定,这将使此异常 a

以上是关于如何在 MacOS 上安装 MySQLi的主要内容,如果未能解决你的问题,请参考以下文章

如何在 PHP 7 中启用 MySQLi 扩展?

如何在 macOS 上安装 Tizen 4/5 模拟器?

如何在 macOS 上安装 dbus-python?

如何在MacOS的VScode上安装Python3

如何在VMware上安装macOS High Sierra

如何使用自制软件在 macOS 上安装 qt4?