You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

配置MySQL的php.ini设置及mysqli_connect报错原因咨询(Termux环境)

在Termux环境下配置PHP连接MySQL的php.ini指南及常见问题解析

一、无php.ini时调用mysqli_connect()报错的原因

在Termux环境中,PHP默认内置配置并未启用mysqli扩展——这是连接MySQL的核心依赖扩展。当你未指定自定义php.ini时,PHP加载的默认配置里,mysqli扩展处于未激活状态,直接调用mysqli_connect()会触发函数未定义错误;即便扩展被编译进PHP,默认配置也可能缺失MySQL连接的关键参数(如本地socket路径),导致连接失败。

二、适用于Termux的php.ini配置代码

将以下内容保存为当前目录下的php.ini文件,替换其中的用户名和密码为你的MySQL实际信息:

; 启用mysqli扩展(Termux环境下扩展文件为mysqli.so)
extension=mysqli.so

; MySQL默认连接参数
mysqli.default_host = 127.0.0.1
mysqli.default_port = 3306
; 替换为你的MySQL用户名
mysqli.default_user = root
; 替换为你的MySQL密码
mysqli.default_pw = your_mysql_password
; Termux中MySQL的socket文件路径,若路径不同需自行调整
mysqli.default_socket = /data/data/com.termux/files/var/run/mysqld/mysqld.sock

; 设置默认字符集,避免数据库乱码
mysqli.default_charset = utf8mb4

三、正常操作数据库必需的配置项

  1. 核心必选项

    • extension=mysqli.so:必须启用该扩展,否则mysqli_connect()等相关函数根本无法被识别,这是解决函数未定义错误的关键。
  2. 连接基础配置(可选但建议设置)

    • mysqli.default_host:指定默认数据库主机,避免在代码中重复填写主机地址
    • mysqli.default_port:匹配你的MySQL端口(你当前使用的是3306)
    • mysqli.default_socket:Termux本地MySQL的socket文件路径,确保PHP能找到本地运行的MySQL实例,避免因路径缺失导致的连接失败
  3. 字符集配置(可选但重要)

    • mysqli.default_charset = utf8mb4:设置默认字符集,解决中文等非ASCII字符的乱码问题

验证配置是否生效

在当前目录创建phpinfo.php文件,内容如下:

<?php
phpinfo();
?>

启动你的PHP服务器:php -t ./ -S 127.0.0.1:8080 -c ./,访问http://127.0.0.1:8080/phpinfo.php,搜索"mysqli"关键字,若能看到扩展的详细信息,则配置生效。

内容的提问来源于stack exchange,提问作者Sevada 797

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 21:52:37