每次不知道为啥root的权限都不够用的 ALTER总是失败。。
第一步:开启PS的管理员模式:(确保目录在本机是有的)
需要先net stop mysql80 然后再执行下面的命令:
& "C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqld" `
--console `
--skip-grant-tables `
--skip-networking `
--datadir="C:\ProgramData\MySQL\MySQL Server 8.0\Data"
输出的结果必须有 ready for connections才是正确的。

第二步:打开一个新的PS管理员模式,现在可以无密码登录了:
mysql -u root
MySQL -u root 然后进入输入一下的命令:
-- 给 root@localhost 打开所有全局权限位
UPDATE mysql.user
SET Select_priv='Y', Insert_priv='Y', Update_priv='Y', Delete_priv='Y',
Create_priv='Y', Drop_priv='Y', Reload_priv='Y', Shutdown_priv='Y',
Process_priv='Y', File_priv='Y', Grant_priv='Y', References_priv='Y',
Index_priv='Y', Alter_priv='Y', Show_db_priv='Y', Super_priv='Y',
Create_tmp_table_priv='Y', Lock_tables_priv='Y', Execute_priv='Y',
Repl_slave_priv='Y', Repl_client_priv='Y', Create_view_priv='Y',
Show_view_priv='Y', Create_routine_priv='Y', Alter_routine_priv='Y',
Create_user_priv='Y', Event_priv='Y', Trigger_priv='Y', Create_tablespace_priv='Y'
WHERE User='root' AND Host='localhost';
-- 对本机 127.0.0.1 也执行一次(项目可能用 IP 连接)
UPDATE mysql.user
SET Select_priv='Y', Insert_priv='Y', Update_priv='Y', Delete_priv='Y',
Create_priv='Y', Drop_priv='Y', Grant_priv='Y', Index_priv='Y', Alter_priv='Y',
Create_tmp_table_priv='Y', Lock_tables_priv='Y', Execute_priv='Y',
Create_view_priv='Y', Show_view_priv='Y', Create_routine_priv='Y',
Alter_routine_priv='Y', Event_priv='Y', Trigger_priv='Y'
WHERE User='root' AND Host='127.0.0.1';
FLUSH PRIVILEGES;
