mysql修改密碼的那些事兒 首次設定密碼的三招

2021-09-25 18:18:17 字數 3991 閱讀 7718

新安裝的 mysql 如何設定密碼?

如何設定mysql密碼?如果我們可以通過一條命令就能改變密碼,那mysql的安全性就太低了。

思路:

mysql的使用者、密碼以及其他關鍵資訊都在名為「mysql」的資料庫中儲存,常用的是mysql.user 。要設定密碼,就是要進入mysql資料庫中,修改表名為user表中的密碼資訊。

沒有密碼,如何進入mysql就成了本問題的關鍵,這就來好好講講!

仔細想想,設定密碼的方法還挺多,下面就說這常用的三種方法!

方法概述:

首先,進入設定mysql環境選項的狀態中,該狀態可以允許不用密碼直接修改使用者身份的相關資訊;

其次,我們在設定mysql環境選項狀態中,將root使用者身份認證設定為空,結束這一狀態後,也可以免密登入。直接跳過登入密碼,直接免密登入,然後進入mysql後修改密碼。

最後,正常狀態下,免密進入mysql中,設定密碼,即完成了所有操作。

應該是比較簡單的方法吧!

(1)先關閉mysql,再設定mysql環境選項,設定為跳過使用者授權,最後啟動mysql。

systemctl stop mysqld.service

systemctl set-environment mysqld_opts=

"--skip-grant-tables"

systemctl start mysqld.service

(2)經過步驟(1)之後,我們就可以免密進入mysql了

mysql -uroot
(3)進入mysql後,將root使用者的身份認證設定為空,退出。

update mysql.user set authentication_string=

'' where user=

'root'

;quit

(4)完成以上設定後,結束mysql環境選項設定狀態。處於環境設定狀態下,智慧型做使用者身份設定的事情,其餘命令無法使用。

systemctl unset-environment mysqld_opts

systemctl restart mysqld

現在已經將root使用者的身份設定為空,所以處於一般狀態時,我們也可以免密登入。

(1)免密進入mysql

mysql -uroot
(2)在mysql中,設定密碼。由於預設要求密碼強度等級是中等,所以密碼要求大小寫字母+數字+特殊符號,這個是可以修改的,詳情看我的本系列文章「突破密碼限制」

alter user 'root'@'localhost' identified by "ff@123456"

;update mysql.user set password_expired=

'n';

update mysql.user set host=

'%' where user=

'root'

;flush privileges;

quit

本方法的關鍵是進入mysql環境選項狀態中,可以免密登入,只要能進mysql,什麼都簡單了!

(1)關閉msyql

systemctl stop msyqld.service
(2)修改my.cnf 檔案

my.cnf檔案是mysql的核心檔案,記錄並規定著msyql的安裝路徑、msyql資料檔案的存放路徑以及日誌路徑這些最基礎也是最核心的資訊。一般存放路徑為 /etc/my.cnf

vi /etc/my.cnf
(3)增加下面這三句話於配置檔案中,新增後就可以不用密碼登入了。

#disabling symbolic-links is recommended to prevent assorted security risks

skip-grant-tables #新增這句話,這時候登入mysql就不需要密碼

symbolic-links=0

(4)啟動msyql

systemctl start msyqld.service
(1)免密進入mysql,輸入如下命令後,直接回車即可,不用輸入密碼。

mysql -uroot -p
(2)在mysql中,設定密碼。由於預設要求密碼強度等級是中等,所以密碼要求大小寫字母+數字+特殊符號,這個是可以修改的,詳情看我的本系列文章「突破密碼限制」

alter user 'root'@'localhost' identified by "ff@123456"

;update mysql.user set password_expired=

'n';

update mysql.user set host=

'%' where user=

'root'

;flush privileges;

quit

(1)關閉msyql

systemctl stop msyqld.service
(2)修改my.cnf 檔案

vi /etc/my.cnf
(3)刪除增加的三句話。

#disabling symbolic-links is recommended to prevent assorted security risks

skip-grant-tables #新增這句話,這時候登入mysql就不需要密碼

symbolic-links=0

(4)啟動msyql

systemctl start msyqld.service
增加配置檔案,可以獲得免密的許可權,進入mysql後,可以自由發揮了。修改完密碼後,刪除增加的語句即可。

(1)找到mysql日誌檔案,使用抓取臨時密碼的命令

grep

'temporary password' /var/log/mysqld.log

(2)讀取臨時密碼。因為按照mysql過程中,會顯示臨時密碼,也會記錄在日誌檔案中,所以可以直接從日誌檔案中獲取,這裡的臨時密碼是「ix2m&lqd2ldl」

2019-07-31t02:22:03.425958z 5 [note]

[my-010454]

[server] a temporary password is generated for root@localhost: ix2m&lqd2ldl

(1)使用臨時密碼進入mysql,輸入如下命令後,直接回車即可。

mysql -uroot -pix2m&lqd2ldl
(2)在mysql中,設定密碼。由於預設要求密碼強度等級是中等,所以密碼要求大小寫字母+數字+特殊符號,這個是可以修改的,詳情看我的本系列文章「突破密碼限制」

alter user 'root'@'localhost' identified by "ff@123456"

;update mysql.user set password_expired=

'n';

update mysql.user set host=

'%' where user=

'root'

;flush privileges;

quit

本方法是最簡單的,因為臨時密碼很好獲取,一條命令就能解決的事情!

讀書破萬卷,

試驗做萬遍。

這些軟體的安裝,是很需要實際操作能力的,報錯必不可少,也避免不了,我們能做的是充實自己的知識儲備,才能從容地應對問題。

用珠寶裝飾自己,不如用知識充實自己。fighting!

Mysql那些事兒

1 limit m,n如何優化?2 mysql 四種隔離級別 隔離級別 髒讀不可重複讀 幻讀未提交讀 可能可能 可能已提交讀 不可能可能 可能可重複讀 不可能不可能 可能可序列化 不可能不可能 不可能1.未提交讀 read uncommitted 允許髒讀,也就是可能讀取到其他會話中未提交事務修改的...

MySql 那些事兒 日誌

類別 二進位制日誌 binlogmysql的二進位制日誌是我們平時最常用的日誌,他記錄了我們事務中sql語句執行的資訊 回滾日誌 undolog邏輯格式的日誌,在執行undo的時候,僅僅是將資料從邏輯上恢復至事務之前的狀態,而不是從物理頁面上操作實現的,這一點是不同於redo log的。undo是在...

MySQL儲存引擎的那些事兒

關於mysql的儲存引擎主要使用到的有以下三種 myisam 對事務要求不高,以新增和插入操作為主 innodb 對事務的要求比較高,所儲存的資料都是重要資料 memory 資料變化頻繁,並且不需要入庫,速度極快 其中myisam和innodb的主要區別如下 事務安全 myisam不支援事務安全,而...