MySQL和SQLite是本地部署PHP应用时最常用且原生支持度最高的两种数据库;前者需启用mysqli或PDO扩展并运行独立服务,后者依赖sqlite3和pdo_sqlite扩展且无需服务进程。
如果您在本地部署 PHP 应用,需要选择兼容且易于配置的数据库系统,则 MySQL 和 SQLite 是最常用、原生支持度最高的两种选项。以下是针对这两种数据库的连接配置方法:
MySQL 是关系型数据库,需运行独立服务(如 MySQL Server 或 MariaDB),PHP 通过 mysqli 扩展或 PDO 驱动与其通信。确保 php.ini 中已启用 mysqlnd 或 mysqli 扩展。
1、确认扩展已启用:打开 php.ini 文件,检查是否存在 extension=mysqli 或 extension=pdo_mysql,并确保前面无分号注释。
2、重启本地 Web 服务器(如 Apache 或 Nginx)使配置生效。
3、创建测试连接脚本,例如 connect_mysql.php:
4、在脚本中使用 mysqli 面向对象方式连接:$conn = new mysqli("localhost", "root", "password", "testdb", 3306);
5、若使用 PDO 方式,代码为:$pdo = new PDO("mysql:host=localhost;dbname=testdb;charset=utf8mb4", "root", "password");
SQLite 是嵌入式数据库,无需单独安装服务进程,PHP 默认启用 pdo_sqlite 和 sqlite3 扩展,仅需确保扩展未被禁用即可直接读写 .sqlite 文件。
1、检查 php.ini 中是否存在 extension=sqlite3 和 extension=pdo_sqlite,并确认未被注释。
2、保存 php.ini 后重启 Web 服务器。
3、创建数据库文件(如 data.sqlite)可直接通过 PHP 创建
:$db = new SQLite3("data.sqlite");
4、执行建表语句:$db->exec("CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY, name TEXT);");
5、若使用 PDO 连接 SQLite,语法为:$pdo = new PDO("sqlite:data.sqlite");
PHP 提供内置函数检测扩展加载状态,避免因扩展缺失导致连接失败。该方法不依赖外部工具,仅需一个 PHP 脚本即可完成诊断。
1、新建 check_ext.php 文件。
2、写入代码:var_dump(extension_loaded("mysqli"), extension_loaded("pdo_mysql"), extension_loaded("sqlite3"), extension_loaded("pdo_sqlite"));
3、通过浏览器或 CLI 执行该脚本。
4、输出中对应位置显示 bool(true) 表示扩展已成功加载。
连接异常通常源于扩展未启用、服务未运行或权限配置错误。逐一核对以下关键配置点可快速定位问题根源。
1、检查 MySQL 服务是否正在运行:sudo systemctl status mysql(Linux)或查看 Windows 服务列表中 MySQL 是否启动。
2、确认 php.ini 路径正确:执行 php --ini 查看实际加载的配置文件路径,避免修改了错误的 php.ini。
3、验证 MySQL 用户权限:登录 MySQL 后执行 SELECT User, Host FROM mysql.user;,确保 root@localhost 或对应用户存在且允许本地连接。
4、SQLite 文件路径需为绝对路径或相对于脚本执行路径的可写位置,否则会报错 unable to open database file。
# mysql
# php
# linux
# word
# windows
# apache
# nginx
# 浏览器
# 工具
# win
# 配置文件
# Integer
# if
# 面向对象
# select
# mysqli
# pdo
# bool
# 对象
# table
# sqlite
# database
# 数据库
# mariadb
# 两种
# 加载
# 重启
# 仅需
# 最常用
# 未被
# 是否存在
# 您在
# 报错
# 可直接
相关栏目:
【
Google疑问12 】
【
Facebook疑问10 】
【
网络优化76771 】
【
技术知识130152 】
【
IDC云计算60162 】
【
营销推广131313 】
【
AI优化88182 】
【
百度推广37138 】
【
网站推荐60173 】
【
精选阅读31334 】
相关推荐:
Windows10如何更改桌面背景_Win10个性化幻灯片放映设置
Win11怎么更改账户头像_Windows 11自定义用户头像图片设置【步骤】
Mac怎么开启“任何来源”_Mac安装未签名应用的设置方法【解决】
短链接怎么用php递归还原_多层加密链接的处理法【详解】
php485读数据时阻塞怎么办_php485非阻塞读取设置技巧【详解】
c++23 std::expected怎么用 c++优雅处理函数错误返回【详解】
VSC怎样在Linux运行PHP_Ubuntu系统配置步骤【操作】
如何在 Go 中创建包含 map 的 slice(嵌套数据结构)
Windows 10怎么把任务栏放在屏幕上方_Windows 10解锁任务栏并拖动位置
如何用正则与预处理高效拦截带干扰符的恶意域名
Windows10系统怎么查看硬盘健康_Win10 SMART信息检测工具
Go 中实现 Python urllib.quote() 等效功能的正确方式
Win11如何开启telnet服务 Win11启用Telnet客户端【步骤】
Win11怎么修改DNS服务器 Win11设置DNS加速网络【指南】
Windows电脑如何截屏?(四种快捷方法)
Windows如何使用注册表查找和删除项?(regedit教程)
Mac怎么设置登录项_Mac管理开机自启动程序【教程】
c++中的可变参数模板(variadic templates)怎么用_c++模板编程黑魔法【C++11】
PHP的FastAdmin架构适合二次开发吗_特点分析【介绍】
英国搜索:多数英国人认为语言搜索是未来搜索
PHP 中 require() 语句返回值的用法详解
php增删改查报错1054怎么办_字段名错误排查修复【解答】
php本地部署后session无法保存_session存储路径与权限设置技巧【技巧】
VSC怎么快速定位PHP错误行_错误追踪设置法【方法】
php下载安装选zip还是msi格式_两种安装包对比【教程】
php查询数据怎么导出csv_查询结果转csv文件保存【操作】
Python解释执行模型_字节码流程说明【指导】
Python实现图数据库操作_Neo4j核心CRUD与图算法解析
C#怎么创建控制台应用 C# Console App项目创建方法
Windows7如何安装系统镜像_Windows7系统安装教程【步骤】
如何使用Golang实现文件加密_Golang crypto 文件加密示例
c++中如何使用虚函数实现多态_c++多态性实现原理
如何在Golang中使用内置函数_Golanglen append make等使用技巧
Python对象比较与排序_魔术方法解析【教程】
Win11怎么设置任务栏大小_Windows11注册表修改TaskbarSi值
如何在网页无标准表格标签时高效提取结构化数据
Win11怎么开启智能存储_Windows11存储感知自动清理文件
Win11如何更改用户账户文件夹名称 Win11修改C:Users用户名【终极教程】
LINUX怎么查看进程_LINUX ps命令查看运行服务
如何在Golang中编写异步函数测试_Golang异步操作测试策略
Win11笔记本怎么看电池健康度_Win11电池报告生成命令【详解】
Python字符串处理进阶_切片方法解析【指导】
Win11声音太小怎么办_Windows 11开启响度均衡增强音量【技巧】
Win11如何设置开机问候语 Win11修改登录界面提示【技巧】
Windows10怎么查看系统激活状态_Windows10激活状态查看方法【教程】
Win10怎么关闭自动更新错误重启 Win10策略禁止失败补丁强制重启【防护】
Win11怎么设置按流量计费_Win11限制后台流量消耗【网络】
Win11怎么清理C盘OneDrive缓存_Win11清理OneDrive缓存技巧【方法】
如何使用Golang template生成文本模板_动态生成HTML或文本
LINUX如何开放防火墙端口_Linux firewalld与iptables开放端口命令【安全配置】
2026-01-04
致胜网络推广营销网专注海外推广十年,是谷歌推广.Facebook广告全球合作伙伴,我们精英化的技术团队为企业提供谷歌海外推广+外贸网站建设+网站维护运营+Google SEO优化+社交营销为您提供一站式海外营销服务。