实测,在mysql8系统下,用mysqld --console --skip-grant-tables --shared-memory可以无密码启动服务
.
服务启动后,以空密码登入系统
mysql.exe -u root
然后执行sql命令将root用户密码设置为空
UPDATE mysql.user SET authentication_string=’’ WHERE user=‘root’ and host=‘localhost’;
Mysql安装完毕时
mysqld --initialize
grep password /var/log/mysqld.log 获取临时密码
mysql -uroot -p 输入临时密码登录MySQL
alter user 'root'@'localhost' identified by 'new@password';
如果忘记或者丢失了临时密码, 重新使用mysqld --initialize
mysqld --user=mysql --skip-grant-tables &
mysql -uroot 登录MySQL
flush privileges; # 否则无法使用对用户操作的命令
alter user 'root'@'localhost' identified by 'new@password'; # 这样是不可以的, 会报错, 不可以对root用户修改密码, 我们只好创建一个新的有超级管理权限的用户
create user 'admin'@'localhost' identified by 'new@password'; # 先创建一个普通的admin用户
grant all on . 'admin'@'localhost'; # 赋予admin用户所有权限