如何在 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
如果您使用的是 Windows 或 Linux: - 在大多数情况下,安装 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的主要内容,如果未能解决你的问题,请参考以下文章