MySQL 安装完成后,设置 root 密码是保障数据库安全的重要步骤。不同版本和安装方式下操作略有差异,以下是常见情况下的配置方法。
1. 使用 mysql_secure_installation 配置(推荐)
如果你使用的是较新版本的 MySQL(如 5.7 及以上),安装后 root 密码可能已自动生成或为空。推荐运行以下命令进行安全初始化:执行命令:
sudo mysql_secure_installation
该脚本会引导你完成以下操作: 设置 root 用户密码 移除匿名用户 禁止 root 远程登录(可选) 删除测试数据库 重新加载权限表 按照提示输入并确认新密码即可完成设置。2. 登录 MySQL 后手动修改密码
如果 root 用户尚未设置密码或忘记密码,可通过以下方式修改:步骤一:以跳过权限验证方式启动 MySQL
停止 MySQL 服务:
sudo systemctl stop mysql
然后用以下命令启动 MySQL 并跳过权限表:
sudo mysqld_safe --skip-grant-tables &
步骤二:登录并修改密码
mysql -u root
进入 MySQL 后,执行以下语句更新密码(MySQL 5.7+):
USE mysql;
UPDATE user SET authentication_string=PASSWORD('你的新密码') WHERE User='root';
FLUSH PRIVILEGES;
EXIT;注意:MySQL 8.0 以后取消了 PASSWORD() 函数,应使用:ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新密码';
步骤三:重启 MySQL 服务
sudo systemctl restart mysql
3. 初始安装时直接设置密码(部分安装包支持)
某些 Linux 发行版(如 Ubuntu)在安装 MySQL 时会提示设置 root 密码。若未设置,也可通过 debconf 工具预先配置:sudo debconf-set-selections word password 你的密码'
sudo debconf-set-selections
之后再安装 MySQL 即可自动应用密码。
4. 检查 root 用户登录权限
有时即使设置了密码,仍无法登录,可能是 host 配置问题。检查 root 用户允许的连接方式:SELECT User, Host FROM mysql.user WHERE User = 'root';
若 Host 为 localhost,则只能本地登录。如需远程访问,可添加:CREATE USER 'root'@'%' IDENTIFIED BY '你的密码'; GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION; FLUSH PRIVILEGES;但出于安全考虑,不建议开放 root 远程访问。
基本上就这些。根据你的安装环境选择合适的方法,优先推荐使用 mysql_secure_installation 工具完成初始化设置,既安全又简单。
