mysql作为常用的关系型数据库,首次安装后默认不设置root用户密码,且存在匿名用户、允许root远程登录等默认配置,这些都会带来安全隐患。完成首次安装后,第一时间进行安全初始化和密码设置是十分必要的操作。
mysql安全初始化工具说明
mysql官方提供了mysql_secure_installation工具,专门用于完成首次安装后的安全配置,该工具会引导用户逐步完成密码设置、安全项配置等操作,适用于大多数mysql安装场景。
首次安装设置密码的完整步骤
步骤1:启动mysql服务
首先确保mysql服务已经正常启动,不同系统的启动命令略有差异,以下是常见系统的启动命令示例:
# CentOS/RHEL系统 systemctl start mysqld # Ubuntu/Debian系统 systemctl start mysql # 查看服务状态确认启动成功 systemctl status mysqld
步骤2:运行安全初始化工具
在终端执行mysql_secure_installation命令,启动初始化流程,执行后会依次出现如下配置提示:
# 执行初始化命令 mysql_secure_installation
步骤3:配置密码相关选项
执行命令后首先会提示是否安装密码强度校验组件,输入Y确认安装,后续会要求设置root用户密码,输入两次一致的密码即可:
Securing the MySQL server deployment. Connecting to MySQL using a blank password. VALIDATE PASSWORD COMPONENT can be used to test passwords and improve security. It checks the strength of password and allows the users to set only those passwords which are secure enough. Would you like to setup VALIDATE PASSWORD component? Press y|Y for Yes, any other key for No: Y There are three levels of password validation policy: LOW Length >= 8 MEDIUM Length >= 8, numeric, mixed case, and special characters STRONG Length >= 8, numeric, mixed case, special characters and dictionary file Please enter 0 = LOW, 1 = MEDIUM, 2 = STRONG: 1 Please set the password for root here. New password: Re-enter new password:
步骤4:完成其他安全配置
密码设置完成后,工具会继续提示其他安全配置项,建议全部输入Y确认:
- 删除匿名用户:避免未授权用户直接登录数据库
- 禁止root用户远程登录:仅允许本地登录root账户,降低远程攻击风险
- 删除test测试数据库:测试数据库默认所有用户都有权限,存在安全风险
- 重新加载权限表:让上述配置立即生效
手动设置密码的替代方法
如果不想使用安全初始化工具,也可以先空密码登录mysql后手动修改root密码,步骤如下:
# 空密码登录mysql
mysql -u root -p
# 直接回车跳过密码输入
# 切换到mysql系统库
USE mysql;
# 修改root用户密码,mysql 5.7及以上版本使用如下语句
ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新密码';
# mysql 5.6及以下版本使用如下语句
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('你的新密码');
# 刷新权限使配置生效
FLUSH PRIVILEGES;
常见问题说明
密码设置后无法登录
如果出现密码正确但无法登录的情况,可能是密码强度不符合要求,或者修改密码后未执行FLUSH PRIVILEGES刷新权限,重新执行刷新命令即可。
忘记首次设置的密码
如果忘记了首次设置的root密码,可以通过跳过权限表的方式重置密码,步骤如下:
# 停止mysql服务 systemctl stop mysqld # 跳过权限表启动mysql mysqld_safe --skip-grant-tables & # 无密码登录mysql mysql -u root # 修改密码 USE mysql; ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码'; FLUSH PRIVILEGES; # 重启mysql服务 systemctl restart mysqld
安全初始化后的验证
完成所有配置后,可以尝试用新设置的密码登录mysql,验证配置是否生效:
# 使用新密码登录 mysql -u root -p # 输入刚才设置的密码,登录成功则说明配置完成
mysql安全初始化mysql_set_password数据库配置修改时间:2026-06-11 10:45:51