温馨提示×

linux mariadb怎么重置密码

小樊
55
2026-10-07 04:16:56
栏目: 云计算

下面是在 Linux + MariaDB 下重置数据库密码的几种常见方法,按使用场景从最常用到特殊场景说明。


一、记得 root 密码(只是想改密码)

MariaDB 10.4 及以上(推荐方式)

mysql -u root -p

登录后执行:

ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
FLUSH PRIVILEGES;

MariaDB 10.3 及以下

SET PASSWORD FOR 'root'@'localhost' = PASSWORD('新密码');
FLUSH PRIVILEGES;

二、忘记 root 密码(最常用方法)

1. 停止 MariaDB

systemctl stop mariadb
# 或
systemctl stop mysql

2. 跳过权限表启动

mysqld_safe --skip-grant-tables &

如果提示 mysqld_safe 不存在,可用:

mariadbd --skip-grant-tables &

3. 无密码登录

mysql -u root

4. 重置密码

FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';

如果是老版本:

UPDATE mysql.user
SET Password = PASSWORD('新密码')
WHERE User = 'root';
FLUSH PRIVILEGES;

5. 退出并重启

exit
systemctl restart mariadb

三、使用 init 脚本(MariaDB 10.4+ 推荐)

停止服务后执行:

systemctl stop mariadb

启动重置模式:

mariadb-install-db --user=mysql --datadir=/var/lib/mysql

然后用:

mysql_secure_installation

四、常见错误解决

1. 报错:Access denied for user 'root'@'localhost'

✅ 使用 --skip-grant-tables 方法

2. 使用 socket 登录

mysql -u root -p --socket=/var/lib/mysql/mysql.sock

五、安全建议

  • 重置后执行:
mysql_secure_installation
  • 不要使用弱密码
  • 限制 root 远程登录

如果你能告诉我:

  • MariaDB 版本
  • Linux 发行版(CentOS / Ubuntu / Debian)
  • 是否能登录系统

我可以给你更精确的一步一步命令。

0 踩