You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

无法通过phpMyAdmin连接MySQL及新建用户登录失败咨询

解决phpMyAdmin连接MySQL的两类问题

一、无法从phpMyAdmin连接到MySQL数据库

咱们先从基础排查开始,这些点大概率能帮你定位问题:

  • 确认MySQL服务是否运行:Linux下可以执行 systemctl status mysql 查看状态,Windows打开服务管理器找到MySQL服务检查是否启动
  • 核对phpMyAdmin配置文件:找到config.inc.php(通常在phpMyAdmin安装目录下),检查$cfg['Servers'][$i]['host']是否正确——如果MySQL和phpMyAdmin在同一台机器,设为localhost127.0.0.1;远程MySQL的话填对应IP。另外确认端口$cfg['Servers'][$i]['port']和MySQL监听端口一致(默认3306,改了的话要对应)
  • 检查防火墙规则:确保phpMyAdmin所在服务器的防火墙允许访问MySQL的3306端口;如果是远程MySQL,也要确认MySQL服务器的防火墙开放了这个端口
  • 查看MySQL绑定地址:打开MySQL配置文件my.cnf(Linux)或my.ini(Windows),找到bind-address项——本地连接设为127.0.0.1,需要远程连接的话设为0.0.0.0或指定允许的IP,修改后重启MySQL生效

二、新用户创建后无法登录phpMyAdmin(报错mysqli_real_connect(): (HY000/104...)

这个问题我碰到过好多次,主要集中在这几个坑:

1. 密码可能带隐藏字符

看你给出的创建命令里,密码'​abc@123'前面有个看不见的零宽空格(大概率是复制时带进来的),这会导致实际密码和你输入的不一致。重新执行命令,手动输入密码,确保没有隐藏字符:

CREATE USER 'new_user'@'%' IDENTIFIED BY 'abc@123';
GRANT ALL PRIVILEGES ON *.* TO 'new_user'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;

2. 用户主机权限不匹配

'new_user'@'%'允许从任意远程主机连接,但如果phpMyAdmin和MySQL在同一台服务器,你的连接其实是从localhost发起的——MySQL里localhost是本地套接字连接,和TCP/IP的%权限不通用。可以额外创建本地用户并授权:

CREATE USER 'new_user'@'localhost' IDENTIFIED BY 'abc@123';
GRANT ALL PRIVILEGES ON *.* TO 'new_user'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;

3. phpMyAdmin配置限制

检查config.inc.php里的相关设置:

  • 确保$cfg['Servers'][$i]['auth_type']设为cookiehttp,这样才能手动输入用户名密码登录
  • 确认$cfg['Servers'][$i]['AllowNoPassword']设为false(你的用户有密码,开启这个可能导致验证异常)

4. 确保权限刷新生效

执行FLUSH PRIVILEGES;后如果还是不行,可以重启MySQL服务,确保权限表的修改完全生效

5. 看具体错误代码

104开头的错误里,最常见的是1045(Access denied,对应权限或密码问题);如果是1040(Too many connections),那要检查MySQL的连接数限制。把完整错误代码贴出来,能更精准定位问题

内容的提问来源于stack exchange,提问作者odbhut.shei.chhele

火山引擎 最新活动