“ubuntu sqladmin 连接失败”这个问题比较常见,但原因很多,需要结合具体场景判断。我按最常见情况给你一个排查清单,你可以逐条对照。
请先确认以下 3 点:
sqladmin?Access denied for userConnection refusedUnable to connect to serverTimeoutsudo systemctl status mysql
如果没运行:
sudo systemctl start mysql
sudo systemctl enable mysql
检查 MySQL 是否在监听 3306:
ss -lntp | grep 3306
如果只监听 127.0.0.1,远程连接会失败。
允许远程访问(谨慎) 编辑:
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
找到:
bind-address = 127.0.0.1
改为:
bind-address = 0.0.0.0
然后重启:
sudo systemctl restart mysql
登录 MySQL:
sudo mysql -u root -p
查看用户权限:
SELECT user, host FROM mysql.user;
如果是本地连接失败,确保有:
GRANT ALL PRIVILEGES ON *.* TO 'sqladmin'@'localhost' IDENTIFIED BY '密码';
FLUSH PRIVILEGES;
如果是远程连接:
GRANT ALL PRIVILEGES ON *.* TO 'sqladmin'@'%' IDENTIFIED BY '密码';
常见错误:
Access denied for user 'sqladmin'@'localhost'
确认:
Ubuntu 默认 MySQL 用 socket 连接。
如果你用:
mysql -u sqladmin -p
但程序用:
127.0.0.1:3306
可能失败。
✅ 解决方式:
sudo mysql -u sqladmin -p --host=127.0.0.1
或确保程序使用:
localhost
如果是 Web 工具:
检查:
/etc/phpmyadmin/config.inc.php
常见错误:
$cfg['Servers'][$i]['host'] = 'localhost';
改成:
$cfg['Servers'][$i]['host'] = '127.0.0.1';
# 1. 服务是否运行
sudo systemctl status mysql
# 2. 端口是否监听
ss -lntp | grep 3306
# 3. 本地能否连接
mysql -u sqladmin -p
# 4. 查看错误日志
sudo tail -n 50 /var/log/mysql/error.log
你可以直接把下面信息发我(越详细越好):
我可以一步一步帮你精确解决 ✅