一:先关闭mysql,
方式1:
net stop mysql
方式2:window+R 输入services.msc 找到MySQL,手动关闭
二:方式1:在my.ini文件[mysqld]的port=3306下加上skip-grant-tables
另外,我的my.ini文件配置内容如下
# MySQL配置
[client]
# MySQL客户端端口
port=3306
[mysql]
# MySQL默认字符集编码
default-character-set=utf8
[mysqld]
# MySQL端口
port=3306
# skip-grant-tables
# 当登录密码忘记的时候
# MySQL安装路径
basedir="E:\Program Files\mysql-5.7.34"
# MySQL数据库文件路径
datadir="E:\Program Files\mysql-5.7.34\data"
# MySQL数据库默认编码
character-set-server=utf8
# 表存储引擎方式 INNODB与MyISAM两种
default-storage-engine=INNODB
# SQL验证模式
sql-mode="STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION"
# 最大连接数
max_connections=512
# MySQL查询缓存
query_cache_size=0
# 高速缓存的大小
table_cache=256
# 内存表的大小
tmp_table_size=18M
# 最大连接线程数
thread_cache_size=8
# 重建索引时所允许的最大临时文件的大小
myisam_max_sort_file_size=64G
# MyISAM表发生变化时重新排序所需的缓冲
myisam_sort_buffer_size=35M
# 索引缓冲区的大小
key_buffer_size=25M
# 内存缓冲区大小
read_buffer_size=64K
# 随机读缓冲区大小
read_rnd_buffer_size=256K
# 排序缓冲区大小
sort_buffer_size=256K
此时,直接输入mysql即可无需输入密码进入;
方式二:手动敲命令
mysqld --skip-grant-tables
此时这个窗口不会往下进行,短杠在闪动,就另开启一个cmd窗口(必须以管理员身份开启)
进入bin目录下,输入mysql也会无密码直接进入。
三:两种修改密码的代码,分别对应高低版本的mysql
1:
set password for root@localhost='123456';
2:
update user set authentication_string=password('123456') where user='root';
接着刷新权限
flush privileges;
退出exit/quit
此时完成了修改密码的操作!
四:一些出现的问题和注意事项
- 完成后,返回到my.ini,将输入的skip-grant-tables注释掉。
2.进入命令
mysql -uroot -p
后面没有分号,进入mysql之后可能出现的错误
此时需要修改:
alter user 'root' @ 'localhost' identified by '123456';
- linux或者有的情况密码默认不能设置这么简单,此时可以修改为复杂的密码或者修改参数,降低复杂度:
① 修改validate_password_policy参数的值
set global validate_password_policy=0;
② validate_password_length(密码长度)参数默认为8,我们修改为1
set global validate_password_length=1;