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

如何在PHP的dbh文件中为root@localhost配置MySQL/MariaDB访问权限

问题根本原因

Ubuntu 20.04 版本默认安装的 MariaDB 对 root@localhost 用户默认启用 Unix 套接字认证,仅允许服务器本地的 root 系统用户免密登录,不支持密码登录,所以哪怕你密码正确,PHP 用密码方式发起连接也会触发权限报错。

解决步骤

1. 登录 MariaDB 管理终端

直接在 Ubuntu 服务器命令行执行以下命令,不需要输入密码即可进入 MariaDB 交互界面:

sudo mariadb -u root

2. 修改认证方式并保留现有密码

如果你已经为 MariaDB root 用户设置过密码,直接执行以下 SQL 语句即可,将语句中的你的现有root密码替换为你实际在用的 root 密码:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的现有root密码';

如果你还没有设置过 root 密码,把上面语句里的密码部分替换为你想要设置的密码即可。

3. 刷新权限使配置生效

执行以下 SQL 让配置立即生效:

FLUSH PRIVILEGES;

执行完成后输入exit退出 MariaDB 终端。

4. 核对 PHP 代码配置

确认你代码中的$DATABASE_PASS变量填写的就是上面步骤用到的密码,不要留空。

可选验证步骤

你可以先在命令行测试密码是否配置正确,执行:

mariadb -u root -p

输入你设置的密码,能正常登录就说明数据库侧配置无误,再刷新网页测试 PHP 连接即可。

注意事项
  • 开发环境用 root 用户连接数据库没问题,生产环境请单独创建专用数据库用户、仅分配对应库的操作权限,不要直接用 root 账号,避免安全风险。
  • 如果后续提示找不到users库,可以登录 MariaDB 后执行CREATE DATABASE IF NOT EXISTS users;创建对应数据库。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 10:57:04