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

MySQL(MariaDB)连接https://www.phpmyadmin.co超时报错问题求助

问题根因

你的判断完全正确,连接失败核心原因是你创建的数据库用户仅允许数据库所在服务器本地发起连接,而你使用的在线phpMyAdmin工具部署在公网节点,不是从数据库服务器本地环回地址发起请求,自然会被数据库的访问控制规则拦截,等待超时后抛出连接错误。
另外还有两个默认配置也会挡住外部连接:一是数据库服务默认只绑定本地环回地址,不响应外部IP的连接请求;二是服务器防火墙、云平台安全组默认不放通数据库3306端口的入站流量。

解决步骤
  1. 登录部署数据库的Linux服务器,执行mysql -u root -p,输入数据库root密码进入MySQL/MariaDB命令行控制台。
  2. 创建允许外部访问的数据库用户,执行以下SQL语句:

    如果你能查到你用的phpMyAdmin服务的固定出口IP,强烈建议把下面语句里的%替换成这个固定IP,安全性远高于允许任意地址连接

    -- 创建允许指定地址连接的用户,密码和你本地用户保持一致即可
    CREATE USER 'myuser'@'%' IDENTIFIED BY 'userpsw432';
    -- 授予该用户对data库的全部操作权限
    GRANT ALL PRIVILEGES ON data.* TO 'myuser'@'%';
    -- 刷新权限规则让配置立即生效
    FLUSH PRIVILEGES;
    
  3. 修改数据库绑定地址配置,让服务响应外部连接请求:
    • Debian/Ubuntu系统的配置文件路径一般为/etc/mysql/mysql.conf.d/mysqld.cnf,CentOS/RHEL系统一般为/etc/my.cnf
    • 在配置文件中找到bind-address = 127.0.0.1配置项,把值修改为0.0.0.0,如果该行前面有#注释符就一并删除
    • 保存文件后执行对应命令重启数据库服务:MySQL用systemctl restart mysql,MariaDB用systemctl restart mariadb
  4. 放通数据库端口的访问规则:
    • 系统层面如果用ufw防火墙,执行ufw allow 3306/tcp;如果用firewalld防火墙,执行firewall-cmd --add-port=3306/tcp --permanent && firewall-cmd --reload
    • 如果你用的是云服务器,需要同步到云平台控制台的安全组配置里,放通3306端口的入站规则;如果是云厂商托管数据库,需要在数据库白名单配置里添加phpMyAdmin的出口IP。
安全提示
  • 不要长期使用%(允许任意IP连接)的配置,确认phpMyAdmin的固定出口IP后第一时间替换用户的允许访问地址,避免数据库被公网暴力破解
  • 外部访问的数据库用户不要授予全库权限,仅分配业务需要的对应库操作权限即可
  • 配置完成后如果还是连接失败,先本地用telnet 你的服务器公网IP 3306测试端口连通性,端口不通就回头排查防火墙、安全组、绑定地址的配置问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 06:12:15