mysql 更改密码

由于两台设备的mysql数据库的密码不一样,开发时每次连接数据库都需要更改配置文件,所以想修改一下mysql数据库的密码。
mysql 修改密码千万不要直接修改,直接修改的话会出现两种情况:
1,修改成功,无法登录。
2,修改不成功。
应该首先把密码置为空,然后再修改,

update user set authentication_string='' where user='root';

MySQL版本mysql8.0.30.
最开始用的update语句修改的user密码:

update user set authentication_string='*******' where user='root';

修改完之后无法登录。
显示错误:
ERROR 1130 (HY000): Host ‘localhost’ is not allowed to connect to this MySQL server
从此之后无法登录了!我去!研究了一天了!

尝试修改my.ini配置文件跳过密码验证,但是mysql8之后不支持修改文件了。
执行如下命令:

net stop mysql;
mysqld --console --skip-grant-tables --shared-memory;

结果是一直运行的界面。
如果不是说明跳过密码验证失败,如果显示的是如下图提示:
mysql 更改密码_第1张图片

就在mysql的安装包data下面修改这个两个文件的权限,重新运行

mysqld --console --skip-grant-tables --shared-memory;

运行成功之后,此窗口千万不要关闭,重新打开新的cmd 窗口,
mysql -u root 登录成功。

网上有很多说用grant 修改用户的权限的方法,我尝试了都不成功。

最后用alert 重新修改密码:(如果提示修改密码失败,就先把密码置为空然后刷新再修改

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '******';
flush privileges;

修改密码就一直报ERROR 1396 (HY000)。

最终发现应该先置空,刷新之后,在更改密码。

use mysql;

update user set authentication_string=‘’ where user=‘root’;

flush privileges;

你可能感兴趣的:(mysql,android,数据库)