“Debian 上 sqladmin 连接失败”通常不是单一原因,而是服务、网络、账号、配置中某一环出问题。下面按最常见场景给你一个排查清单(以 MySQL / MariaDB 为主,PostgreSQL 类似)。
常见情况:
不同情况排查点略有不同,但核心一致。
systemctl status mysql
# 或
systemctl status mariadb
如果没启动:
systemctl start mysql
systemctl enable mysql
查看监听:
ss -lntp | grep 3306
如果看到:
127.0.0.1:3306
说明只能本机连
nano /etc/mysql/mariadb.conf.d/50-server.cnf
把:
bind-address = 127.0.0.1
改为:
bind-address = 0.0.0.0
重启:
systemctl restart mysql
例如用户是:
sqladmin@localhost
但你从 另一台机器或 Web 服务 连,就会失败。
登录数据库后执行:
SELECT user, host FROM mysql.user;
授权示例(允许任意 IP):
CREATE USER 'sqladmin'@'%' IDENTIFIED BY '密码';
GRANT ALL PRIVILEGES ON *.* TO 'sqladmin'@'%';
FLUSH PRIVILEGES;
Debian 防火墙:
ufw status
如果开启:
ufw allow 3306
云服务器还要检查:
查看用户认证方式:
SELECT user, host, plugin FROM mysql.user;
如果是:
unix_socket
说明不能用密码登录
解决:
ALTER USER 'sqladmin'@'localhost' IDENTIFIED VIA mysql_native_password USING PASSWORD('新密码');
检查:
/etc/phpmyadmin/config.inc.php
重点:
$cfg['Servers'][$i]['host'] = 'localhost';
$cfg['Servers'][$i]['user'] = 'sqladmin';
如果是 socket 连接失败,可改:
$cfg['Servers'][$i]['host'] = '127.0.0.1';
mysql -u sqladmin -p
mysql -h IP -u sqladmin -p
Access denied → 账号/密码/权限Can't connect → 服务/防火墙/端口Unknown host → DNS/配置你可以贴出:
我可以直接告诉你是哪一步错了。