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

Ubuntu 18.04下无需sudo使用MySQL root账户的配置求助

嘿,这个问题我太熟了——Ubuntu 18.04 自带的 MySQL 默认用了个叫 auth_socket 的插件来验证 root 用户,这就是为啥你必须加 sudo 才能登进去的原因。这个插件不认密码,只认系统用户身份,所以普通用户直接输密码肯定被拒。来,跟着我一步步解决:

解决 Ubuntu 18.04 下无需 sudo 连接 MySQL 的问题

1. 先通过 sudo 进入 MySQL 控制台

先按你之前能成功的方式登录:

sudo mysql -u root -p

输入你的 root 密码后进入命令行界面。

2. 确认当前的认证插件

执行这条 SQL 看看 root 用户的认证方式:

SELECT user, plugin FROM mysql.user WHERE user = 'root';

你会看到 plugin 列显示的是 auth_socket,这就是问题根源。

3. 把认证方式改成密码验证

执行下面的 SQL 语句,把 root 用户的认证插件换成 mysql_native_password,同时设置(或重置)你的密码(把 your_secure_password 换成你自己的密码):

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_secure_password';

4. 刷新权限让修改生效

FLUSH PRIVILEGES;

5. 测试普通用户连接

输入 exit 退出 MySQL,然后直接用普通命令登录:

mysql -u root -p

输入你刚才设置的密码,应该就能顺利进入了!

针对 MySQL Workbench 和 phpMyAdmin 的额外配置

  • MySQL Workbench:创建连接时,确保主机填 localhost,用户名是 root,密码填你刚设置的新密码,别勾选不必要的 SSH 隧道选项,保存后测试连接应该就正常了。
  • phpMyAdmin:如果之前连不上,打开 /etc/phpmyadmin/config.inc.php 文件,找到以下配置项,确保密码和你设置的一致:
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = 'your_secure_password';
$cfg['Servers'][$i]['auth_type'] = 'password';

修改后保存,重启 Apache 服务:

sudo systemctl restart apache2

这样操作完,不管是命令行普通登录,还是 Workbench、phpMyAdmin 都能正常连接 MySQL 了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 09:57:13