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

Ubuntu 20.04下通过apt安装MySQL并配置root用户使用auth_socket认证

解决apt安装MySQL时root用户认证方式不一致问题

问题根因

不同Debian/Ubuntu发行版携带的MySQL安装包默认配置存在差异,且主机上残留的debconf配置项会跳过安装交互环节,最终导致root用户默认认证方式不一致。

实现固定auth_socket认证的部署步骤

  • 第一步:清理历史残留配置,避免旧配置干扰新装
    执行以下命令彻底卸载MySQL并清理残留文件、配置项:
# 卸载已安装的MySQL相关包
apt purge -y mysql-server mysql-common mysql-server-*
# 删除数据和配置目录
rm -rf /var/lib/mysql /etc/mysql
# 清除debconf中缓存的MySQL配置
echo PURGE | debconf-communicate mysql-server-8.0
  • 第二步:预置debconf配置,安装时直接采用auth_socket认证
    提前写入安装参数,完全跳过交互提示,强制安装默认配置:
# 预置root密码为空,不使用密码认证
echo "mysql-server-8.0 mysql-server/root_password string" | debconf-set-selections
echo "mysql-server-8.0 mysql-server/root_password_again string" | debconf-set-selections
# 预置root用户默认认证插件为auth_socket
echo "mysql-server-8.0 mysql-server/auth-plugin select auth_socket" | debconf-set-selections
  • 第三步:安装MySQL并执行兜底校验修正
    为避免特殊发行版包配置覆盖预置项,安装完成后强制修改root认证方式,双重保证符合预期:
# 安装MySQL服务
apt update && apt install -y mysql-server
# 用系统默认维护账号修改root认证方式,无需提前知道root密码
DEBIAN_CNF="/etc/mysql/debian.cnf"
mysql --defaults-extra-file=${DEBIAN_CNF} -e "ALTER USER 'root'@'localhost' IDENTIFIED WITH auth_socket; FLUSH PRIVILEGES;"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 03:06:04