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

启动MariaDB无报错但状态显示root@localhost访问拒绝求助

解决MariaDB启动后status报错Access denied for user 'root'@'localhost' (using password: NO)

环境信息

  • MariaDB版本:10.3.38
  • Azure云服务器Ubuntu系统版本:20.04

错误原因澄清

这个错误不是启动MariaDB服务需要输入密码,而是systemctl status mariadb在检查服务状态时,默认尝试以无密码的root用户连接数据库,但当前MariaDB的root用户已设置密码或采用了socket认证(Ubuntu 20.04上的MariaDB默认用unix_socket认证),导致连接失败,所以status输出中会显示该错误,但实际上服务大概率已经正常启动。

解决步骤

1. 确认服务是否真的运行

执行以下命令查看MariaDB进程:

ps aux | grep mariadb

如果能看到mariadb相关的进程,说明服务已正常启动,status里的错误只是状态检查环节的连接问题,不影响服务使用。

2. 正确登录MariaDB验证

根据root用户的认证方式选择登录命令:

  • 默认unix_socket认证:直接执行
    sudo mariadb
    
  • 已改为密码认证:执行
    sudo mariadb -u root -p
    
    然后输入设置的root密码即可登录。

3. 修复status检查的错误(可选)

如果不想status输出中显示该错误,可按以下操作调整:

  1. 编辑MariaDB主配置文件:
    sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
    
  2. 在[mysqld]段落中添加或确保存在以下配置:
    user=mysql
    
  3. 保存文件后重启服务:
    sudo systemctl restart mariadb
    

4. 确认root用户认证方式(排查用)

登录MariaDB后执行以下SQL语句,查看root用户的认证插件:

SELECT user, host, plugin FROM mysql.user WHERE user='root';
  • 若plugin为unix_socket:说明是默认认证方式,需用sudo登录
  • 若plugin为mysql_native_password:说明已设置密码认证,登录时需输入密码

内容的提问来源于stack exchange,提问作者동미선

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 05:15:11