Welcome 微信登录

首页 / 数据库 / MySQL / MySQL 修改用户密码及重置root密码

为数据库用户修改密码是DBA比较常见的工作之一。对于MySQL用户账户的密码修改,有几种不同的方式,推荐的方式使用加密函数来修改密码。本文主要描述了通过几种不同的方式来修改用户密码以及mysql root账户密码丢失(重置root密码)的处理方法。1、密码修改的几种方法a、可以在创建用户的时候指定密码,以及直接使用grant创建用户的时候指定密码。
  对于已经存在的用户直接使用grant方式也可以修改密码
如下:--演示版本
root@localhost[(none)]> show variables like "version%"; 
+-------------------------+------------------------------+ 
| Variable_name          | Value                        | 
+-------------------------+------------------------------+ 
| version                | 5.5.37                      | 
| version_comment        | MySQL Community Server (GPL) | 
| version_compile_machine | x86_64                      | 
| version_compile_os      | Linux                        | 
+-------------------------+------------------------------+ --下面我们使用grant方式创建一个新帐户fred,并设定密码
root@localhost[(none)]> grant usage on *.* to "fred"@"localhost" identified by "fred";
Query OK, 0 rows affected (0.00 sec)--查看刚刚创建的账户
root@localhost[(none)]> select host,user,password from mysql.user where user="fred";
+-----------+------+-------------------------------------------+
| host      | user | password                                  |
+-----------+------+-------------------------------------------+
| localhost | fred | *6C69D17939B2C1D04E17A96F9B29B284832979B7 |
+-----------+------+-------------------------------------------+--下面可以成功登陆mysql
SZDB:~ # mysql -ufred -pfredfred@localhost[(none)]>b、使用set password方式来修改账户密码
--下面我们使用set password方式来设定密码
root@localhost[(none)]> set password for "fred"@"localhost"=password("passwd");
Query OK, 0 rows affected (0.00 sec)root@localhost[(none)]> flush privileges;
Query OK, 0 rows affected (0.00 sec)--再次登陆时,之前的密码已经失效,无法登陆
SZDB:~ # mysql -ufred -pfred
ERROR 1045 (28000): Access denied for user "fred"@"localhost" (using password: YES)--下面使用新密码登陆成功
SZDB:~ # mysql -ufred -ppasswdfred@localhost[(none)]>--检索数据库是否存在linuxidc用户,如下密码为null
root@localhost[(none)]> select host,user,password from mysql.user where user="linuxidc";
+-----------+------+----------+
| host      | user | password |
+-----------+------+----------+
| localhost | linuxidc |          |
+-----------+------+----------+c、加密方式更新系统表user的password列
--我们尝试直接更新密码列(不使用加密函数方式)
root@localhost[(none)]> update mysql.user set password="linuxidc" where user="linuxidc";
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0--由于直接使用明文,因此系统表user列password显示为明文
root@localhost[(none)]> select host,user,password from mysql.user where user="linuxidc";
+-----------+------+----------+
| host      | user | password |
+-----------+------+----------+
| localhost | linuxidc | jack    |
+-----------+------+----------+--Author : Leshami
--Blog  :http://www.linuxidc.comroot@localhost[(none)]> flush privileges;
Query OK, 0 rows affected (0.02 sec)--此时无法登陆
SZDB:~ # mysql -ulinuxidc -pjack -h localhost     
ERROR 1045 (28000): Access denied for user "linuxidc"@"localhost" (using password: YES)--下面我们通过set方式来修改linuxidc的密码,提示找不到linuxidc用户
root@localhost[(none)]> set password for "linuxidc"@"localhost"=password("linuxidc");
ERROR 1133 (42000): Can"t find any matching row in the user table--我们切换到mysql数据库下尝试,
root@localhost[(none)]> use mysql root@localhost[mysql]> set password for "linuxidc"@"localhost"=password("passwd");  --在mysql数据库下依旧无法更新用户linuxidc的密码
ERROR 1133 (42000): Can"t find any matching row in the user table--下面我们尝试用password函数方式来更新password列
root@localhost[mysql]> update user set password=password("passwd") where user="linuxidc"; --此方式更新成功
Query OK, 1 row affected (0.04 sec)
Rows matched: 1  Changed: 1  Warnings: 0root@localhost[mysql]> select host,user,password from user where user="linuxidc";    --可以看到密码已经变成了密文
+-----------+------+-------------------------------------------+
| host      | user | password                                  |
+-----------+------+-------------------------------------------+
| localhost | linuxidc | *59C70DA2F3E3A5BDF46B68F5C8B8F25762BCCEF0 |
+-----------+------+-------------------------------------------+root@localhost[mysql]> flush privileges;
Query OK, 0 rows affected (0.00 sec)--此时登陆成功
robin@SZDB:~> mysql -ulinuxidc -ppasswd         linuxidc@localhost[(none)]>--------------------------------------分割线 --------------------------------------Ubuntu 14.04下安装MySQL http://www.linuxidc.com/Linux/2014-05/102366.htm《MySQL权威指南(原书第2版)》清晰中文扫描版 PDF http://www.linuxidc.com/Linux/2014-03/98821.htmUbuntu 14.04 LTS 安装 LNMP NginxPHP5 (PHP-FPM)MySQL http://www.linuxidc.com/Linux/2014-05/102351.htmUbuntu 14.04下搭建MySQL主从服务器 http://www.linuxidc.com/Linux/2014-05/101599.htmUbuntu 12.04 LTS 构建高可用分布式 MySQL 集群 http://www.linuxidc.com/Linux/2013-11/93019.htmUbuntu 12.04下源代码安装MySQL5.6以及Python-MySQLdb http://www.linuxidc.com/Linux/2013-08/89270.htmMySQL-5.5.38通用二进制安装 http://www.linuxidc.com/Linux/2014-07/104509.htm--------------------------------------分割线 --------------------------------------更多详情见请继续阅读下一页的精彩内容: http://www.linuxidc.com/Linux/2014-10/107662p2.htm
  • 1
  • 2
  • 下一页
PL/SQL中错误的异常处理MySQL 用户与权限管理相关资讯      MySQL修改root密码  MySQL重置root密码 
  • MySQL的root密码由空改为123456  (11/06/2014 09:11:31)
  • Red Hat 下 MySQL root密码恢复  (12/13/2012 10:41:21)
  • CentOS 6.4下安装MySQL后重置root  (03/23/2014 20:22:38)
本文评论 查看全部评论 (0)
表情: 姓名: 字数