修改mysql服务的连接密码其原理在于修改mysql服务自带mysql数据库下user表中的数据,下边三种修改方式和使用场景不同,不过最终的原理一致,前两种需要连接mysql服务之后修改,第三种方式无需连接服务即可修改。

1.强制修改root密码

适用于修改了默认的root用户密码并且忘记了root用户密码的场景,具体步骤如下:

1.1 vi /etc/my.cnf

找到[mysqld],在其下添加一行skip-grant-tables,之后强制保存退出

1.2 重启MySQL服务

service mysqld restart  

1.3 重新连接到mysql服务

mysql -uroot -p,这时不需要输入root密码,直接回车即可连接

1.4 修改root密码

Use mysql;

Update user set password=password('123456') where User="root" and Host="localhost";

刷新系统授权表

flush privileges;  

1.5删除掉/etc/my.cnf中的skip-grant-tables,之后重启mysql

2.可以连接到mysql修改密码

适用于可以连接到mysql服务,之后修改指定用户的连接密码

2.1 直接使用set password方法

set password for root@’%’= password('123'); 

2.2 同1中的update直接修改user表中数据

3.mysqladmin修改密码

一般用于更换新密码时

mysqladmin -uroot -p123456 password 123