CentOS Mysql 初始化密码
使用 skip-grant-tables 跳过密码
方法一 改配置文件
- 编辑 /etc/my.cnf,[mysqld]下添加skip-grant-tables
- 重启 mysqld 默认3306端口
- mysql 启动
MySQL> UPDATE mysql.user SET Password=PASSWORD('新密码') where USER='root';
MySQL> flush privileges;
MySQL> exit
若出现:
You must reset your password using ALTER USER statement before executing this statement.
需要立即重置密码,将密码强度改为弱,否则不允许设置为简单密码
# set global validate_password_policy=0;
# set password = password ('123456');
方法二 改服务启动参数
- 设置环境变量并重启服务
- 用root登录并改密码
- 恢复环境变量并重启服务
- 使用密码登录
systemctl stop mysqld
systemctl set-environment MYSQLD_OPTS="--skip-grant-tables"
systemctl start mysqld
mysql -u root
mysql> UPDATE mysql.user SET authentication_string = PASSWORD('MyNewPassword') WHERE User = 'root' AND Host = 'localhost';
mysql> FLUSH PRIVILEGES;
systemctl stop mysqld
systemctl unset-environment MYSQLD_OPTS
systemctl start mysqld
mysql -u root -p