mysql 如何修改root密码及其它用户密码

mysql修改用户的密码,使用sql语句,更新mysql的系统库,来修改用户的密码

mysql 在安装时,root 的默认密码为空,在启动mysql后,可以设置其密码 ( PS:好像是在 mysql 5.6以后的版本,不再使用空密码,而是一个随机密码,在安装时记录在一个日志文件里,是不是 5.6 的版本,我记不清楚了,大家有知道可以留言啦!)

在安装完成后,默认密码为空的情况下,在 linux shell 下,设置密码命令为:

mysqladmin -u root password 'your_password'

其中,your_password 为你要设置的密码。

当然,这是一种方法,另外一种方法就是进入数据库,使用 SQL 语句来修改。mysql 用户信息,保存在 mysql 库中的 user 表里,可直接执行 sql 语句。

mysql> use mysql;
Database changed
mysql> select user,host,password from user;
+----------+-----------------+-------------------------------------------+
| user | host | password |
+----------+-----------------+-------------------------------------------+
| root | localhost | *0879DD3F3FE25A953BC2C465B41F6D44B307DCA9 |
| root | desktop-8dhj665 | *0879DD3F3FE25A953BC2C465B41F6D44B307DCA9 |
| root | 127.0.0.1 | *0879DD3F3FE25A953BC2C465B41F6D44B307DCA9 |
| bbsuser | 10.29.114.69 | *84AAC12F54AB666ECFC2A83C676908C8BBC381B1 |
| ainy | 172.19.37.77 | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
| dbadmin | 10.22.190.76 | *0879DD3F3FE25A953BC2C465B41F6D44B307DCA9 |
| blogainy | localhost | *012DB0B2E168F731573915B4A21C5EB9191CA6B1 |
+----------+-----------------+-------------------------------------------+
7 rows in set (0.00 sec)

mysql>

通过查询,可以看到,本环境里有这些用户,其中,password 列 是密码,这个是经过加密后的密文,而 root 由有多个,分别是从不同地点的登录而来,其密码可以一样,也可以不一样,更新密码语句如下:

mysql> use mysql;
Database changed
mysql>
mysql> update user set password=password('1234567890') where user='root' and host='localhost';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

mysql>

这里注意一定要指定 where 条件,否则整个列都会更新成这个密码,其中,password() 是 mysql 里面的一个函数,用意是将密码,加密为密文存储在数据库里,where 指定条件,即代表 user 字段是 root 并且 host 字段是 localhost 的行,才更新,其它行不更新。

flush privileges 是刷新一下权限表,一般更改了权限之后,都进行手动刷新一下。

PS: 在 mysql 安装完以后,默认为空密码的情况下,也可以按止方法来设置密码。设置其它用户,也是指定 where 条件,即可。

猜您喜欢