配置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
三、正常操作数据库必需的配置项
核心必选项
extension=mysqli.so:必须启用该扩展,否则mysqli_connect()等相关函数根本无法被识别,这是解决函数未定义错误的关键。
连接基础配置(可选但建议设置)
mysqli.default_host:指定默认数据库主机,避免在代码中重复填写主机地址mysqli.default_port:匹配你的MySQL端口(你当前使用的是3306)mysqli.default_socket:Termux本地MySQL的socket文件路径,确保PHP能找到本地运行的MySQL实例,避免因路径缺失导致的连接失败
字符集配置(可选但重要)
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
相关产品推荐
相关产品推荐

