前言:
在日常使用資料庫的程序中,難免會遇到需要修改賬號密碼的情景,比如密碼太簡單需要修改、密碼過期需要修改、忘記密碼需要修改等,本篇文章將會介紹需要修改密碼的場景及修改密碼的幾種方式,

1.忘記 root 密碼
忘記 root 密碼的場景還是比較常見的,特別是自己搭的測驗環境經過好久沒用過時,很容易記不得當時設定的密碼,這個時候一般常用的方法是跳過權限驗證,然后更改 root 密碼,之后再啟用權限驗證,以 MySQL 5.7 版本為例簡單講下主要程序:
首先修改組態檔,在[mysqld]部分加上一句:skip-grant-tables ,加上此引數的目的是跳過權限驗證,然后重啟資料庫,資料庫再次啟動后,我們就可以不用密碼直接登錄資料庫修改密碼了,
# skip-grant-tables 模式下修改root密碼
[root@host ~]# mysql
Welcome tothe MySQL monitor. Commands endwith; or\g.
Your MySQL connectionid is16
Server version: 5.7.23-log MySQL Community Server (GPL)
Copyright (c) 2000, 2018, Oracle and/orits affiliates. Allrights reserved.
Oracle isa registered trademark ofOracle Corporation and/orits
affiliates. Other names may be trademarks oftheir respective
owners.
Type 'help;'or'\h'forhelp. Type '\c'toclear the currentinput statement.
mysql> updatemysql.usersetauthentication_string = password('xxxxxx') whereuser= 'root'andhost = 'localhost';
Query OK, 0 rowsaffected, 1 warning (0.00 sec)
Rowsmatched: 1 Changed: 0 Warnings: 1
mysql> flush privileges;
Query OK, 0 rowsaffected (0.01 sec)
修改完 root 密碼后,再次去除 skip-grant-tables 引數,然后重啟下資料庫即可,
2.幾種修改密碼的方法
除去忘記密碼,可能還有其他情景需要修改密碼,這時候就可以采取普通方式修改密碼了,還是以 MySQL 5.7 版本為例,介紹幾種常用的修改密碼的方法,
使用 alter user 修改
比如如果想更改 testuser 賬號的密碼,我們可以使用 root 賬號登錄,然后執行 alter user 命令更改 testuser 賬號的密碼,
mysql> alteruser'testuser'@'%'identified by'Password1';
Query OK, 0 rowsaffected (0.01 sec)
mysql> flush privileges;
Query OK, 0 rowsaffected (0.00 sec)
使用 SET PASSWORD 命令
使用 SET PASSWORD 修改密碼命令格式為 SET PASSWORD FOR 'username'@'host' = PASSWORD('newpass'); 同樣是使用 root 賬號可修改其他賬號的密碼,
mysql> SETPASSWORDFOR'testuser'@'%'= PASSWORD('Password2');
Query OK, 0 rowsaffected, 1 warning (0.00 sec)
mysql> flush privileges;
Query OK, 0 rowsaffected (0.00 sec)
使用 mysqladmin 修改密碼
使用 mysqladmin 命令修改賬號密碼格式為 mysqladmin -u用戶名 -p舊密碼 password 新密碼
[root@host ~]# mysqladmin -utestuser -pPassword2 passwordPassword3
mysqladmin: [Warning] Using a passwordonthe command line interface can be insecure.
Warning: Since passwordwill be sent toserver inplain text, use ssl connectiontoensure passwordsafety.
[root@host ~]# mysql -utestuser -pPassword3
mysql: [Warning] Using a passwordonthe command line interface can be insecure.
Welcome tothe MySQL monitor. Commands endwith; or\g.
Your MySQL connectionid is2388
Server version: 5.7.23-log MySQL Community Server (GPL)
Copyright (c) 2000, 2018, Oracle and/orits affiliates. Allrights reserved.
Oracle isa registered trademark ofOracle Corporation and/orits
affiliates. Other names may be trademarks oftheir respective
owners.
Type 'help;'or'\h'forhelp. Type '\c'toclear the currentinput statement.
mysql>

直接 update user 表
其實 MySQL 所以的賬號資訊都存盤在 mysql.user 表里面,我們也可以直接通過 update user 表來修改密碼,
# 5.7及之后版本
mysql> updatemysql.usersetauthentication_string = password('Password4') whereuser= 'testuser'andhost = '%';
Query OK, 1 row affected, 1 warning (0.06 sec)
Rowsmatched: 1 Changed: 1 Warnings: 1
mysql> flush privileges;
Query OK, 0 rowsaffected (0.01 sec)
# 5.6及之前版本
updatemysql.usersetpassword=password('新密碼') whereuser='用戶名'andhost='host';
3.設定 login-path 本地快捷登陸
為了防止密碼暴露及忘記密碼,我們還可以設定 login-path 來實作在本地不輸密碼快捷登錄,
login-path 是 MySQL 5.6 開始支持的新特性,通過借助 mysql_config_editor 工具將登陸 MySQL 服務的認證資訊加密保存在 .mylogin.cnf 檔案(默認位于用戶主目錄),MySQL 客戶端工具可通過讀取該加密檔案連接 MySQL ,實作快捷登錄,
假設我們想配置 root 賬號在本地快捷登錄,可以這么做:
# 執行回車后需要輸入一次root密碼
[root@host ~]# mysql_config_editor set--login-path=root -uroot -hlocalhost -p -P3306
Enter password:
# 配置完成后可以使用login-path登錄
[root@host ~]# mysql --login-path=root
Welcome tothe MySQL monitor. Commands endwith; or\g.
Your MySQL connectionid is2919
Server version: 5.7.23-log MySQL Community Server (GPL)
Copyright (c) 2000, 2018, Oracle and/orits affiliates. Allrights reserved.
Oracle isa registered trademark ofOracle Corporation and/orits
affiliates. Other names may be trademarks oftheir respective
owners.
Type 'help;'or'\h'forhelp. Type '\c'toclear the currentinput statement.
mysql>
總結:
本篇文章主要介紹了修改資料庫賬號密碼的幾種方法,基本涵蓋了所有的場景,這里也提醒下各位,資料庫賬號最好限制ip段登錄,密碼盡量復雜些,最好能夠定期修改,特別是重要的環境不能有半點馬虎,年底了,安全才是王道,
以上就是MySQL修改密碼的幾種方式的詳細內容,有什問題歡迎評論區留言,

最后,如果你也想成為程式員,想要快速掌握編程,趕緊加入學習企鵝圈子!
里面有資深專業軟體開發工程師,在線解答你的所有疑惑~編程語言入門“so easy”
編程學習書籍:

編程學習視頻:

轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/239015.html
標籤:其他
上一篇:PHP操作Redis常用命令
下一篇:PHP操作Redis常用命令
