新安裝的 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不支援事務安全,而...