🤖 Ai回答: 在 PHP 中连接 Windows 服务器上的 MySQL 数据库,需要确保以下条件满足,然后按照步骤配置连接代码。以下是详细指南:
一、前提条件
1、MySQL 服务已安装并运行
确认 MySQL 服务在 Windows 上已启动:
按 `Win + R` 输入 `services.msc` → 找到 MySQL 80(或类似名称)→ 确保状态为 正在运行。
如果未启动,右键选择 启动。
2、PHP 已安装且启用 MySQL 扩展
检查 PHP 扩展(关键步骤):
打开 `php.ini` 文件(通常在 `C:\xampp\php\php.ini` 或 `C:\wamp\bin\php\php.ini`)。
取消注释以下两行(删除行首的 `;`):
ini
;extension=mysqli
;extension=pdo_mysql
→ 修改为:
ini
extension=mysqli
extension=pdo_mysql
重启 Web 服务器(如 Apache):
XAMPP:点击 `Stop` → `Start`。
WAMP:点击右下角托盘图标 → 选择 Restart All Services。
3、MySQL 有连接权限
通过 MySQL 命令行确认:
sql
SELECT User, Host FROM mysql.user;
确保用户 `root` 有 `localhost` 或 `%`(允许所有 IP)的访问权限。
如果没有,执行:
sql
CREATE USER 'root'@'%' IDENTIFIED BY 'your_password';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
三、关键问题排查
| 问题现象 | 可能原因 | 解决方案 |
|
| Access denied for user 'root'@'localhost' | 1、密码错误<br2、无 `localhost` 权限 | 1、检查 `php.ini` 中的密码<br2、用 `CREATE USER` 授权 |
| Can't connect to MySQL server on '127.0.0.1' (10061) | 1、MySQL 服务未启动<br2、端口被占用 | 1、检查 `services.msc` 中 MySQL 服务<br2、重启 MySQL 服务 |
| mysqli: [2002] No such file or directory | 1、未启用 `mysqli` 扩展<br2、PHP 未加载 `php_mysqli.dll` | 1、检查 `php.ini` 未注释 `extension=mysqli`<br2、重启 Web 服务器 |
| The server time zone value is unrecognized | 时区配置错误 | 在连接字符串中添加 `timezone` 参数:<br`new PDO(mysql:host=...;charset=utf8mb4;timezone=+00:00, ...)` |
四、高级配置(可选)
1、连接远程 MySQL 服务器
php
$servername = 192.168.1.100; // 替换为服务器 IP