一、命令式修改:
1、先关闭你的Mysql服务。
Windows:
已经将MySQL服务添加到系统服务:
net stop MySQL的服务名称
Linux:
version>=7:systemctl stop mysqld
version<7:service mysqld stop
如果没有添加系统服务也没有设置环境变量,直接到MySQL的安装bin目录下面停掉mysql服务。(我相信这种情况很少少)
2、跳过登录认证。
添加环境变量的直接命令输入:
mysqld skip-grant-tables
没有添加环境变量的。切换到MySQL的bin目录下键入这个命令:mysqld skip-grant-tables
linux的需要带上路径执行,如:./mysqld skip-grant-tables
3、修改密码。
先登录,键入:
mysql -u root -p ----回车之后,提示输入密码,直接回车。
version<=MySQL5.6:
登录mysql之后:
use mysql;
update user set password=password(“新密码,注意密码设置规则”) where user=“用户名”;
version>=MySQL5.7:
update user set authentication_string=password(“新密码,注意密码设置规则”) where user=“用户名”;
flush privileges;
4、启动MySQL服务。
Windows:
net start MySQL服务名
Linux:
version>=7:systemctl start mysql
version<7:service mysql start
如果没有添加系统服务也没有设置环境变量,直接到MySQL的安装bin目录下面启动mysql服务。(我相信这种情况很少少)
二、修改配置文件来修改:
Windows系统:
配置文件:my.ini,在[mysqld]下新增skip-grant-tables。
修改
Linux系统:
配置文件,my.cnf,在[mysqld]下新增skip-grant-tables。
version<=MySQL5.6和version>=MySQL5.7,修改密码的命令不一样而已,由于mysql5.7之后password这个字段变为authentication_string
version<=MySQL5.6:
use mysql;
update user set password=password(“新密码,注意密码设置规则”) where user=“用户名”;
flush privileges;
version>=MySQL5.7:
update user set authentication_string=password(“新密码,注意密码设置规则”) where user=“用户名”;
flush privileges;
本人建议Windows使用命令来修改密码,Linux使用修改配置文件修改。
原因如下:
1、配置文件修改麻烦,然后会留下修改文件的记录。
2、配置文件现在Winodws环境下都没有生成这个配置文件了,只是针对老版本的。
3、命令式修改。