无初始密码

情况 1:通过 Yum/Apt 包管理器安装yum install mysql-server

  • 没有默认初始密码
  • root@localhost 用户初始无密码或由安装脚本生成临时密码。

情况 2:通过 MySQL 官方 RPM 或 Debian 包安装

  • ✅ 会生成临时初始密码
  • 通常记录在日志文件中:
# 查看临时密码(MySQL 8.0+) 
sudo grep 'temporary password' /var/log/mysqld.log

忘记 root 密码

步骤 1:停止 MySQL 服务

sudo systemctl stop mysqld 
# 或 
sudo systemctl stop mysql

步骤 2:跳过权限验证启动 MySQL

sudo mysqld_safe --skip-grant-tables --skip-networking &

--skip-grant-tables:跳过权限表验证,无需密码即可登录
--skip-networking:禁止远程连接,保证安全

注意:如果你的系统使用 mysqld 而不是 mysqld_safe,可以使用:

sudo mysqld --skip-grant-tables --skip-networking --daemonize

步骤 3:无密码登录 MySQL

mysql -u root 

步骤 4:刷新权限并修改 root 密码

# 刷新权限
FLUSH PRIVILEGES;

# 
修改 root@localhost 的密码(MySQL 8 推荐方式)
ALTER USER 'root'@'localhost' IDENTIFIED BY '密码';

# 再次刷新权限
FLUSH PRIVILEGES;

# 退出
EXIT;

步骤 5:重启 MySQL

# 先杀掉跳过权限的进程 
sudo pkill mysqld 
# 正常启动 
MySQL sudo systemctl start mysqld

允许root远程登陆

ALTER USER 'root'@'%' IDENTIFIED BY '密码';