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 -pfred
fred@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 -ppasswd
fred@localhost[(none)]>
--檢索資料庫是否存在bkjia使用者,如下密碼為null
root@localhost[(none)]> select host,user,password from mysql.user where user='bkjia';
+-----------+------+----------+
| host | user | password |
+-----------+------+----------+
| localhost | bkjia | |
+-----------+------+----------+
c、加密方式更新系統資料表user的password列
--我們嘗試直接更新密碼列(不使用加密函數方式)
root@localhost[(none)]> update mysql.user set password='bkjia' where user='bkjia';
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='bkjia';
+-----------+------+----------+
| host | user | password |
+-----------+------+----------+
| localhost | bkjia | jack |
+-----------+------+----------+
--Author : Leshami
--Blog :
《MySQL權威指南(原書第2版)》清晰中文掃描版 PDF
Ubuntu 14.04 LTS 安裝 LNMP Nginx\PHP5 (PHP-FPM)\MySQL
Ubuntu 14.04下搭建MySQL主從伺服器
Ubuntu 12.04 LTS 構建高可用分布式 MySQL 叢集
Ubuntu 12.04下原始碼安裝MySQL5.6以及Python-MySQLdb
MySQL-5.5.38通用二進位安裝
--------------------------------------分割線 --------------------------------------
更多詳情見請繼續閱讀下一頁的精彩內容: