phpenv中mysql默认绑定127.0.0.1、端口非3306(如3307),root空密码且禁远程,需新建用户并配置dbeaver连接参数:host填127.0.0.1、port填实际端口、user填新用户、allowpublickeyretrieval设为true、usessl设为false。

phpEnv 自带的 MySQL/MariaDB 默认是本地绑定、无远程访问权限,且 root 用户默认禁用密码登录 —— 直接填 localhost + root + 空密码在 DBeaver 里必然报 Access denied for user 'root'@'localhost' 或 Public Key Retrieval is not allowed 错误。
确认 phpEnv 数据库实际运行状态和端口
phpEnv 的数据库服务不是总在运行,也不是固定用 3306 —— 它可能被设为按需启动,或改用了非标端口(比如 3307、3308)以避免与系统 MySQL 冲突。
- 打开 phpEnv 控制面板,查看「数据库」模块是否显示「已启动」;若为灰色/停止状态,先点击启动
- 点击数据库右侧的「配置」按钮,打开
my.ini(Windows)或my.cnf(Linux/macOS 模拟环境),搜索port=,记下真实端口号(常见为3307) - 同时检查
bind-address值:若为127.0.0.1或localhost,说明只允许本地连接,DBeaver 可用;若为0.0.0.0,则需额外注意防火墙
必须创建一个带密码的专用连接用户
phpEnv 的 root 用户默认空密码且 host 限制为 127.0.0.1,DBeaver 连接时会因认证方式(caching_sha2_password)或 host 匹配失败而中断。不能硬改 root 密码,应新建用户。
- 用 phpEnv 自带的 phpMyAdmin 或命令行进入 MySQL:
mysql -u root -P 3307 -h 127.0.0.1(端口按上一步确认的填) - 执行以下语句(替换
your_pass):CREATE USER 'dbeaver_user'@'127.0.0.1' IDENTIFIED BY 'your_pass';<br>GRANT ALL ON *.* TO 'dbeaver_user'@'127.0.0.1';<br>FLUSH PRIVILEGES;
- 不推荐用
'%'或'localhost':前者可能触发 DNS 解析问题,后者在 MySQL 8+ 中与127.0.0.1被视为不同 host
DBeaver 连接时关键参数设置
选 MySQL 连接类型后,大部分字段可默认,但以下几项必须手动核对,否则连上也查不了表:
-
Host填127.0.0.1(不是localhost):绕过 socket 文件路径问题,强制走 TCP -
Port填 phpEnv 实际端口(如3307),不是默认 3306 -
User name填上一步创建的dbeaver_user,Password填对应密码 - 点击「Edit Driver Settings」→ 「Driver Properties」,找到
allowPublicKeyRetrieval设为true,并确保useSSL为false(phpEnv 默认无有效证书) - 首次连接会提示下载驱动:务必勾选「Download driver files automatically」,且提前在
Preferences → Maven中配置阿里云镜像(https://maven.aliyun.com/repository/public),否则下载极慢或失败
连接成功后仍看不到数据库?检查 default schema 设置
即使连接测试通过,左侧导航树可能为空,或双击后提示「No schemas found」—— 这通常是因为 DBeaver 没有自动加载 schema 列表,或用户权限未显式授予 information_schema 等系统库。
- 右键连接名 → 「Edit Connection」→ 「Connection settings」→ 「Initialization」选项卡
- 勾选「Connect to database」,并在下拉框中手动选择一个已存在的数据库名(如
mysql或你自己的库),否则 DBeaver 默认不加载任何 schema - 若仍不显示,右键连接 → 「Refresh metadata」,等待几秒;如持续失败,回到 SQL 编辑器执行
SHOW DATABASES;验证用户确实有权限看到库列表
最易被忽略的是端口和 host 组合:phpEnv 多实例场景下,localhost 和 127.0.0.1 在 MySQL 认证层不等价,3306 和 3307 混用会导致连接超时而非报错,排查时得两边日志对照看。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











