如果
alter user 'root'@'%' identified with mysql_native_password by '123456';
返回的是:Query OK, 0 rows affected (0.00 sec)
而不是:ERROR 1396 (HY000): Operation ALTER USER failed for 'root'@'%'
那么你只要在执行
flush privileges;
就可以了。
但是!报错了那么可以尝试下面这个解决办法
1、 进入mysql库
use mysql;
2、查看用户权限范围
select user,host from user;
发现我们的root用户权限是localhost,意思是只能在本地访问,无法远程连接
3、把权限放开,所有地址都能访问
update user set host = '%' where user ='root';
4、刷新权限
flush privileges;
完美!