修改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