在 Debian 上设置或修改 MySQL(或 MariaDB)密码,常见场景和做法如下(覆盖 Debian 主流版本)。
mysql_secure_installation(推荐)sudo apt update
sudo apt install mysql-server
sudo mysql_secure_installation
按提示操作:
sudo mysql -u root -p
进入 MySQL 后执行:
MySQL 5.7 / 8.0
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';
FLUSH PRIVILEGES;
MariaDB / 老版本 MySQL
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('新密码');
FLUSH PRIVILEGES;
sudo systemctl stop mysql
sudo mysqld_safe --skip-grant-tables --skip-networking &
mysql -u root
FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
sudo systemctl restart mysql
auth_socket 的特殊情况Debian 安装 MySQL / MariaDB 后:
auth_socket 插件SELECT user, host, plugin FROM mysql.user WHERE user='root';
如果看到:
plugin = auth_socket
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';
FLUSH PRIVILEGES;
mysql -u root -p
CREATE USER 'user1'@'localhost' IDENTIFIED BY '密码';
GRANT ALL PRIVILEGES ON 数据库名.* TO 'user1'@'localhost';
FLUSH PRIVILEGES;
Access denied for user 'root'@'localhost'✅ 原因:
auth_socket✅ 解决:
sudo mysql 登录| 场景 | 命令 |
|---|---|
| 首次设置 | mysql_secure_installation |
| 修改密码 | ALTER USER root@localhost ... |
| 忘记密码 | --skip-grant-tables |
| Debian 默认问题 | auth_socket → mysql_native_password |
如果你愿意,可以告诉我:
cat /etc/debian_version)mysql --version)我可以给你完全对应你系统的命令 ✅