問題背景:
在ubuntu18上裝完mysql8後,初始化時沒有給隨機密碼,也無法設定密碼;
第一步:修改/etc/my.cnf配置檔案,在[mysqld]ui後加上如下語句:
skip-grant-tables
第二步免密登入到mysql上,
第三步:給root使用者重置秘密;
3.1首先檢視當前root使用者相關資訊,在mysql資料庫的user表中
selecthost, user, authentication_string, pluginfromuser;
host: 允許使用者登入的ip『位置』%表示可以遠端;
user:當前資料庫的使用者名稱;
authentication_string: 使用者密碼;在mysql 5.7.9以後廢棄了password欄位和password()函式;
plugin: 密碼加密方式;
3.2 如果當前root使用者authentication_string欄位下有內容,先將其設定為空;
use mysql;
update
user set authentication_string='' where user='root';
update
user
set
password_expired=
'n'
where
user
=
'root'
;
flush
privileges
;
exit;
3.3 退出mysql, 刪除/etc/my.cnf檔案最後的 skip-grant-tables 重啟mysql服務;
service mysqld restart
3.4 使用root使用者進行登入,因為上面設定了authentication_string為空,所以可以免密碼登入;
3.5使用alter修改root使用者密碼
alteruser'root'@'localhost'identifiedby'zhige123#';
至此修改成功; 從新使用使用者名稱密碼登入即可;
mysql 8 0忘記密碼
開啟終端,停止mysql服務。mysql.server stop進入mysql所在目錄 我的是 usr local bin 如果不確定在哪,可以用which mysql命令查詢一下,然後輸入如下命令 cd usr local bin sudo mysqld safe skip grant table...
MySQL8 0 忘記密碼 修改密碼
mysql 5.7.9以後廢棄了password欄位和password 函式 authentication string 字段表示使用者密碼,而authentication string欄位下只能是mysql加密後的41位字串密碼。所以需要用一下方式來修改root密碼 alter user root...
mysql 8 0 忘記root密碼 linux
1.vim etc my.cnf 在 mysqld 最後加上如下語句並儲存退出 2.重啟mysql服務 service mysqld restart 3.免密碼登陸 mysql u root p password校驗直接回車 select host,user,authentication strin...