在【mysqld】模塊添加:skip-grant-tables 保存退出后重啟mysql;

創(chuàng)新互聯(lián)公司-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設、高性價比新密網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式新密網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設找我們,業(yè)務覆蓋新密地區(qū)。費用合理售后完善,10年實體公司更值得信賴。
解決1044錯誤問題:
1044問題實質是因為你的mysql數(shù)據(jù)庫沒有設值密碼或者密碼不正確導致的。
起因: 初始自動生成的密碼太復雜了,并且粘貼過去登錄一直報錯,所以想直接修改密碼
過程:
還有些修改密碼的指令是這樣的,set password for ‘root’@‘localhost’=password(‘MyNewPass4!’); 也會報錯
應該是
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密碼' PASSWORD EXPIRE NEVER;
Ubuntu在Mysql 8.0在線安裝成功后(sudo apt install),默認的root用戶密碼為空,默認監(jiān)聽本機,只能在本機登錄,直接命令`mysql`即可登錄 。
Centos安裝完成后,可能需要密碼,密碼位置在
如果沒有密碼,或者忘記密碼請在配置文件加入 skip-grant-tables ,ubuntu配置文件在 /etc/mysql/ 路徑下。
注: 跳過密碼后,登錄進入后必須先 flush privileges 才能修改密碼。
1:第一種方式
直接在用Linux命令 mysqladmin 修改。
2:第二種方式
登錄mysql 更改密碼
顯示ok成功。
注:由于我這里沒有默認安裝validate_password插件,所以直接修改成功,有些默認安裝的是修改不成功的,因為太簡單的密碼,不符合密碼規(guī)則,會報錯如下: ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
3:關于validate_password插件
validate_password是一款密碼規(guī)則插件,查看密碼規(guī)則命令:
安裝完成后,查看顯示如下:
參數(shù)說明:
當指定密碼規(guī)則后,如果嫌麻煩,直接更改密碼規(guī)則即可,如偏要設置123456簡單密碼。
雖然改了密碼,但是發(fā)現(xiàn)root登錄仍無需登錄密碼,或者加參數(shù)-p輸入密碼時,任何密碼都可以進入。
原因:查看用戶插件信息
顯示root插件為auth_socket,這種插件無需密碼,所以設置任何密碼都無效。
更改插件為 mysql_native_password 或者 caching_sha2_password
更改完成后,需重新設置root密碼生效,修改方法同上。修改后,登錄需要輸入正確密碼
注:為了提供更安全的密碼加密,MySQL8.0的首選默認密碼認證插件是caching_sha2_password,而不是mysql_native_password,根據(jù)自己需求選擇插件
關于auth_socket插件
這種插件驗證方式有以下特點:
auth_socket 這個插件因為有這些特點,它很適合我們在系統(tǒng)投產(chǎn)前進行安裝調試的時候使用,而且也有相當?shù)陌踩裕驗橄到y(tǒng)投產(chǎn)前通常經(jīng)常同時使用操作系統(tǒng)的 root 用戶和 MySQL 的 root 用戶。當我們在系統(tǒng)投產(chǎn)后,操作系統(tǒng)的 root 用戶和 MySQL 的 root 用戶就不能隨便使用了,這時可以換成其它的驗證方式,可以使用下面的命令進行切換:
在使用mysql時,如果想修改用戶密碼,怎么修改?我們可以借助客戶端工具來修改,下面來看一下。
01
打開客戶端工具Navicat,打開數(shù)據(jù)庫里的mysql庫,這是一個系統(tǒng)數(shù)據(jù)庫。
02
打開后,在Tables表里,找到user表,這是保存系統(tǒng)用戶的一個表數(shù)據(jù)。
03
打開后,就可以在這里看到每個數(shù)據(jù)庫的用戶名和密碼了。
04
要修改密碼,我們點擊單元格,讓其變成編輯狀態(tài)后,直接輸入新的密碼就行了。
命令行都要以管理員運行
1:net stop mysql 停止mysql服務
2:mysqld --console --skip-grant-tables --shared-memory 啟動MySQL服務的時候跳過權限表認證
3:由于上面的命令行被mysql的服務給占用,我們得重新開啟一個新的命令行
4:在新開的命令行中執(zhí)行mysql
5:update user set authentication_string = '' where user='root' ; 將root用戶的密碼清空
6:quit 退出,然后在之前的命令行將我們開啟的mysql服務停止掉(Ctrl+C或者關閉命令行),然后執(zhí)行net start mysql 重新啟動mysql服務
7:在我們之后開啟的命令行中輸入mysql -uroot -p 然后按enter鍵,輸入密碼繼續(xù)按enter鍵(這里密碼已經(jīng)被清空),
8:ALTER USER 'root'@'localhost' IDENTIFIED BY '新密碼'; 修改密碼
9:退出后,使用新密碼登錄
注意的地方,網(wǎng)上有些給的是使用update命令在第五步直接修改密碼為我們重置的密碼,然后使用flush privileges;命令刷新權限再退出,重啟mysql服務,然后使用我們重置的密碼重新登陸。然而你會發(fā)現(xiàn)登錄會提示密碼不正確,
下面是使用update命令將密碼修改為root
登錄報錯,說明使用update直接修改密碼是不可以的。我們也可以從上面看到update保存的密碼是明文
使用alter命令修改后的密碼是加密的
update 方法保存的為明文是由于沒有使用password()方法,而password()方法在mysql5.7.6版本后已經(jīng)廢棄了,所以必須alter命令去修改密碼了。
如果在第5步直接使用alter命令去修改密碼也是不可以的,會報錯
說是在免鑒權的情況下不支持這個操作
所以我們必須先清空密碼,然后再使用alter命令修改密碼
ps:mysql5.7.6版本后 廢棄user表中 password字段 和 password()方法,所以舊方法重置密碼對mysql8.0版本是行不通的,共勉
希望能幫助你,還請及時采納謝謝
如果不幸忘記或丟失了 MySQL root用戶的密碼,需要一種方法來以某種方式恢復它。 我們需要知道的是密碼存儲在用戶表中。 這意味著我們需要想辦法繞過 MySQL 認證,這樣我們才能更新密碼記錄。
幸運的是,有一個簡單的實現(xiàn),本教程將指導您完成在 MySQL 8.0 版本中恢復或重置 root 用戶密碼的過程。
根據(jù) MySQL 文檔,有兩種方法可以重置root用戶的密碼。其中一種方法是使用 --skip-grant-tables 選項啟動 MySQL 服務。 這不太安全,因為當服務以這種方式啟動時,所有用戶都可以在沒有密碼的情況下進行連接,不過這種方法比較簡單,我們首先來看看這種方法。
如果服務器啟動--skip-grant-tables,--skip-networking 選項會自動激活,因此遠程連接將不可用。
首先停止MySQL服務
使用 選項 --skip-grant-tables 啟動MySQL服務
然后,您只需運行mysq即可連接到mysql服務器。
由于使用 --skip-grant-tables 選項啟動服務時禁用了帳戶管理,因此我們將不得不重新加載授權。 這樣我們以后就可以更改密碼:
現(xiàn)在可以運行以下查詢來更新密碼。 確保將“new_password”更改為您希望使用的實際密碼。
現(xiàn)在停止 MySQL 服務器,然后正常啟動它。
現(xiàn)在使用新密碼再次連接MySQL
啟動mysqld時,如果遇到下面的錯誤
搜索一番,參考文章2和3給出了各種可能性,通過查詢可以看出確實有個mysqld服務未關閉,可是之前我確實關閉了mysql,不知道怎么回事。
只能通過kill命令殺死m(xù)ysql
網(wǎng)站名稱:mysql8.0怎么改用戶密碼,mysql8023修改密碼
分享鏈接:http://chinadenli.net/article15/dsecogi.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供營銷型網(wǎng)站建設、關鍵詞優(yōu)化、App設計、品牌網(wǎng)站制作、響應式網(wǎng)站、商城網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)