Ubuntu16.04下MariaDB root密码修改失败,重装会丢数据库吗?
嘿,我在Ubuntu 16.04上折腾MariaDB时碰到过完全一样的问题,先帮你理清楚密码重置的靠谱步骤,再解答重装后的数据库保留疑问:
一、解决
MariaDB ERROR 1045 (28000)密码报错 你之前试过的方法没奏效,大概率是跳过权限验证的步骤没做对,试试这套针对性的操作:
- 先停掉MariaDB服务:
如果上面的命令报错,换成Ubuntu 16.04更兼容的服务命令:sudo systemctl stop mariadbsudo 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
相关产品推荐
相关产品推荐

