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

Ubuntu16.04下MariaDB root密码修改失败,重装会丢数据库吗?

嘿,我在Ubuntu 16.04上折腾MariaDB时碰到过完全一样的问题,先帮你理清楚密码重置的靠谱步骤,再解答重装后的数据库保留疑问:

一、解决MariaDB ERROR 1045 (28000)密码报错

你之前试过的方法没奏效,大概率是跳过权限验证的步骤没做对,试试这套针对性的操作:

  • 先停掉MariaDB服务:
    sudo systemctl stop mariadb
    
    如果上面的命令报错,换成Ubuntu 16.04更兼容的服务命令:
    sudo service mysql stop
    
  • 启动安全模式,跳过权限检查(加--skip-networking防止远程连接干扰):
    sudo mysqld_safe --skip-grant-tables --skip-networking &
    
  • 无密码登录root账户:
    mysql -u root
    
  • 切换到系统权限库:
    use mysql;
    
  • 更新root密码(Ubuntu 16.04默认的MariaDB版本用authentication_string字段,老版本才用password):
    UPDATE user SET authentication_string=PASSWORD('你的新密码') WHERE User='root' AND Host='localhost';
    
  • 刷新权限让修改生效:
    FLUSH PRIVILEGES;
    
  • 退出数据库:
    exit;
    
  • 重启MariaDB服务:
    sudo systemctl restart mariadb
    

如果还是报错,先检查是不是有残留的mysqld进程,用ps aux | grep mysqld杀掉所有相关进程后再重试。

二、重装MariaDB后数据库是否会保留?

分两种卸载场景,结果不一样:

  • 仅卸载程序(保留配置和数据):
    用sudo apt remove mariadb-server卸载的话,数据库文件默认存在/var/lib/mysql/目录下,完全不会被删除,重装后原来的数据库、表和数据都会保留。
  • 彻底卸载程序+配置(但仍保留数据):
    用sudo apt purge mariadb-server会删掉程序和配置文件,但数据库文件还是在/var/lib/mysql/里,除非你手动执行sudo rm -rf /var/lib/mysql/删除这个目录,否则重装后数据依然存在。

不过要提醒你:虽然默认数据会保留,但重装后可能出现权限问题,比如mysql用户对/var/lib/mysql/的读写权限丢失,到时可以用sudo chown -R mysql:mysql /var/lib/mysql/修复。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 07:59:27