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

Debian 9 环境下使用 MySQL Workbench 无法连接本地 MySQL 5.5 服务器

解决Debian 9下MySQL 5.5连接Error 1968及Access Denied问题

这问题我之前维护Debian老版本环境时碰到过,Error 1968是MySQL 5.5中与密码认证方式、账号权限配置相关的典型报错,结合你的场景,给你一步步排查解决的思路:

第一步:先通过本地Socket方式验证root账号可用性

Debian系统上的MySQL默认配置中,root账号可能仅允许通过本地Socket而非TCP连接登录。先尝试不带-h参数的登录命令:

mysql -u root -p

输入你设置的密码root,如果能成功进入MySQL命令行,说明root账号本身是正常的,问题出在TCP连接的权限或认证配置上。

第二步:排查并修复root@127.0.0.1的权限与认证

如果Socket登录成功,执行以下操作:

  • 查看所有root账号的主机绑定和认证插件:

    SELECT user, host, plugin FROM mysql.user;
    

    重点看是否存在root@127.0.0.1这条记录,以及它的plugin字段值(MySQL 5.5推荐使用mysql_native_password)。

  • 若不存在root@127.0.0.1账号,创建并授权:

    CREATE USER 'root'@'127.0.0.1' IDENTIFIED BY 'root';
    GRANT ALL PRIVILEGES ON *.* TO 'root'@'127.0.0.1' WITH GRANT OPTION;
    
  • 若账号存在但认证插件异常,修改为原生密码插件:

    ALTER USER 'root'@'127.0.0.1' IDENTIFIED WITH mysql_native_password BY 'root';
    
  • 最后刷新权限使配置生效:

    FLUSH PRIVILEGES;
    

    退出MySQL后,再次用你之前的TCP命令测试登录:

    mysql -u root -p -h 127.0.0.1 -P 3306
    

第三步:如果Socket方式也无法登录(重置root密码)

如果连Socket登录都失败,大概率是密码错误或root账号权限异常,需要跳过权限表重置密码:

  1. 停止MySQL服务:
    service mysql stop
    
  2. 以跳过权限验证的方式启动MySQL:
    mysqld_safe --skip-grant-tables &
    
  3. 直接无密码登录MySQL:
    mysql
    
  4. 更新root账号密码(注意MySQL 5.5使用Password字段,而非新版本的authentication_string):
    UPDATE mysql.user SET Password=PASSWORD('root') WHERE User='root' AND Host='localhost';
    FLUSH PRIVILEGES;
    
  5. 退出后重启MySQL服务:
    service mysql restart
    

第四步:检查MySQL绑定地址配置

打开MySQL配置文件(通常是/etc/mysql/my.cnf或/etc/mysql/mysql.conf.d/mysqld.cnf),确认bind-address设置:

bind-address = 127.0.0.1

该配置确保MySQL监听本地TCP连接,若设置为0.0.0.0也没问题,但不要限制为其他非本地地址。修改后需重启MySQL服务生效。

完成以上步骤后,再尝试用MySQL Workbench创建连接,确认主机为127.0.0.1、端口3306、用户名root、密码正确,应该就能正常连接了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 07:09:59