MySQL修改密碼的幾種方式
前言:
在日常使用數(shù)據(jù)庫的過程中,難免會(huì)遇到需要修改賬號(hào)密碼的情景,比如密碼太簡單需要修改、密碼過期需要修改、忘記密碼需要修改等。本篇文章將會(huì)介紹需要修改密碼的場景及修改密碼的幾種方式。
1.忘記 root 密碼
忘記 root 密碼的場景還是比較常見的,特別是自己搭的測試環(huán)境經(jīng)過好久沒用過時(shí),很容易記不得當(dāng)時(shí)設(shè)置的密碼。這個(gè)時(shí)候一般常用的方法是跳過權(quán)限驗(yàn)證,然后更改 root 密碼,之后再啟用權(quán)限驗(yàn)證。以 MySQL 5.7 版本為例簡單講下主要過程:
首先修改配置文件,在[mysqld]部分加上一句:skip-grant-tables ,加上此參數(shù)的目的是跳過權(quán)限驗(yàn)證。然后重啟數(shù)據(jù)庫,數(shù)據(jù)庫再次啟動(dòng)后,我們就可以不用密碼直接登錄數(shù)據(jù)庫修改密碼了。
# skip-grant-tables 模式下修改root密碼
[root@host ~]# mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 16
Server version: 5.7.23-log MySQL Community Server (GPL)
Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> update mysql.user set authentication_string = password ('xxxxxx') where user = 'root' and host = 'localhost';
Query OK, 0 rows affected, 1 warning (0.00 sec)
Rows matched: 1 Changed: 0 Warnings: 1
mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)
修改完 root 密碼后,再次去除 skip-grant-tables 參數(shù),然后重啟下數(shù)據(jù)庫即可。
2.幾種修改密碼的方法
除去忘記密碼,可能還有其他情景需要修改密碼,這時(shí)候就可以采取普通方式修改密碼了。還是以 MySQL 5.7 版本為例,介紹幾種常用的修改密碼的方法。
使用 alter user 修改
比如如果想更改 testuser 賬號(hào)的密碼,我們可以使用 root 賬號(hào)登錄,然后執(zhí)行 alter user 命令更改 testuser 賬號(hào)的密碼。
mysql> alter user 'testuser'@'%' identified by 'Password1'; Query OK, 0 rows affected (0.01 sec) mysql> flush privileges; Query OK, 0 rows affected (0.00 sec)
使用 SET PASSWORD 命令
使用 SET PASSWORD 修改密碼命令格式為 SET PASSWORD FOR 'username'@'host' = PASSWORD('newpass'); 同樣是使用 root 賬號(hào)可修改其他賬號(hào)的密碼。
mysql> SET PASSWORD FOR 'testuser'@'%' = PASSWORD('Password2');
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
使用 mysqladmin 修改密碼
使用 mysqladmin 命令修改賬號(hào)密碼格式為 mysqladmin -u用戶名 -p舊密碼 password 新密碼
[root@host ~]# mysqladmin -utestuser -pPassword2 password Password3 mysqladmin: [Warning] Using a password on the command line interface can be insecure. Warning: Since password will be sent to server in plain text, use ssl connection to ensure password safety. [root@host ~]# mysql -utestuser -pPassword3 mysql: [Warning] Using a password on the command line interface can be insecure. Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 2388 Server version: 5.7.23-log MySQL Community Server (GPL) Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql>
直接 update user 表
其實(shí) MySQL 所以的賬號(hào)信息都存儲(chǔ)在 mysql.user 表里面,我們也可以直接通過 update user 表來修改密碼。
# 5.7及之后版本
mysql> update mysql.user set authentication_string = password ('Password4') where user = 'testuser' and host = '%';
Query OK, 1 row affected, 1 warning (0.06 sec)
Rows matched: 1 Changed: 1 Warnings: 1
mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)
# 5.6及之前版本
update mysql.user set password=password('新密碼') where user='用戶名' and host='host';
3.設(shè)置 login-path 本地快捷登陸
為了防止密碼暴露及忘記密碼,我們還可以設(shè)置 login-path 來實(shí)現(xiàn)在本地不輸密碼快捷登錄。
login-path 是 MySQL 5.6 開始支持的新特性。通過借助 mysql_config_editor 工具將登陸 MySQL 服務(wù)的認(rèn)證信息加密保存在 .mylogin.cnf 文件(默認(rèn)位于用戶主目錄)。MySQL 客戶端工具可通過讀取該加密文件連接 MySQL ,實(shí)現(xiàn)快捷登錄。
假設(shè)我們想配置 root 賬號(hào)在本地快捷登錄,可以這么做:
# 執(zhí)行回車后需要輸入一次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 to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 2919 Server version: 5.7.23-log MySQL Community Server (GPL) Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql>
總結(jié):
本篇文章主要介紹了修改數(shù)據(jù)庫賬號(hào)密碼的幾種方法,基本涵蓋了所有的場景。這里也提醒下各位,數(shù)據(jù)庫賬號(hào)最好限制ip段登錄,密碼盡量復(fù)雜些,最好能夠定期修改,特別是重要的環(huán)境不能有半點(diǎn)馬虎。年底了,安全才是王道。
以上就是MySQL修改密碼的幾種方式的詳細(xì)內(nèi)容,更多關(guān)于MySQL修改密碼的資料請關(guān)注腳本之家其它相關(guān)文章!
- MySQL 如何修改root用戶的密碼
- Windows10下mysql 8.0.19 winx64安裝教程及修改初始密碼
- mysql8.0忘記密碼修改與net命令服務(wù)名無效問題
- Ubuntu查看修改mysql的登錄名和密碼、安裝phpmyadmin
- MySQL修改root密碼的4種方法(小結(jié))
- mysql允許外網(wǎng)訪問以及修改mysql賬號(hào)密碼實(shí)操方法
- mysql 8.0.16 winx64及Linux修改root用戶密碼 的方法
- MySql8.0以上版本正確修改ROOT密碼的方法
- Windows7下安裝使用MySQL8.0.16修改密碼、連接Navicat問題
- 解決MySQL8.0安裝第一次登陸修改密碼時(shí)出現(xiàn)的問題
- mysql5.7及mysql 8.0版本修改root密碼的方法小結(jié)
相關(guān)文章
利用MySQL空間函數(shù)實(shí)現(xiàn)位置打卡的完整步驟
這篇文章主要給大家介紹了關(guān)于如何利用MySQL空間函數(shù)實(shí)現(xiàn)位置打卡的完整步驟,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用MySQL具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08
關(guān)于for update和lock in share mode的區(qū)別及說明
這篇文章主要介紹了關(guān)于for update和lock in share mode的區(qū)別及說明,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-08-08
MySQL過濾重復(fù)數(shù)據(jù)的兩種方法示例
數(shù)據(jù)庫生成環(huán)境中經(jīng)常會(huì)遇到表中有重復(fù)的數(shù)據(jù),或者進(jìn)行關(guān)聯(lián)過程中產(chǎn)生重復(fù)數(shù)據(jù),下面這篇文章主要給大家介紹了關(guān)于MySQL過濾重復(fù)數(shù)據(jù)的兩種方法,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-04-04
Mybatis多表查詢與動(dòng)態(tài)SQL特性詳解
動(dòng)態(tài)SQL可以省略很多拼接SQL的步驟,使用類似于JSTL方式,下面這篇文章主要給大家介紹了關(guān)于Mybatis多表查詢與動(dòng)態(tài)SQL特性的相關(guān)資料,文字通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-11-11

