在Linux系统下修改MySQL密码,主要取决于你当前是否知道原密码、MySQL版本以及系统权限情况。以下是几种常见场景下的操作方法,适用于大多数MySQL版本(包括MariaDB)。
一、已知原密码且能正常登录
如果你可以正常登录MySQL,推荐使用ALTER USER语句修改密码:
登录MySQL:mysql -u root -p 执行修改命令(将
新密码替换为你想设置的密码):
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码'; 刷新权限:
FLUSH PRIVILEGES; 退出并测试新密码:
exit
重新用新密码登录验证是否生效。
二、忘记密码,需要重置root密码
当忘记MySQL root密码时,可通过跳过权限验证临时重置:
停止MySQL服务:sudo systemctl stop mysql(或
mysqld) 以跳过权限表方式启动:
sudo mysqld_safe --skip-grant-tables --skip-networking & 进入MySQL:
mysql -u root 更新密码:
运行以下命令(根据MySQL版本略有不同):
UPDATE mysql.user SET authentication_string = PASSWORD('新密码') WHERE User = 'root';或对于较新版本(MySQL 8.0+):
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';FLUSH PRIVILEGES;
exit 关闭安全模式:杀掉mysqld进程后,用
sudo systemctl start mysql重启服务 使用新密码登录测试:mysql -u root -p
三、使用mysqladmin修改密码
适用于你知道当前密码,并想通过命令行快速修改:
执行命令:mysqladmin -u root -p password "新密码" 输入当前密码后,会自动更新为新密码
此方法简洁,适合脚本中使用。
四、注意事项
修改密码时注意以下几点:
确保新密码符合MySQL密码策略(长度、复杂度等) 某些系统启用了validate_password插件,太简单的密码会被拒绝 修改后建议运行mysql_secure_installation加强安全性 远程访问用户需确认host字段是否为%或其他IP
基本上就这些。根据你的情况选择对应方式,大部分问题都能解决。
