注:可視化工具 Navicat 15 for MySQL
當我們某天忘記我們的root用戶密碼,登錄不到數(shù)據(jù)庫時,只需要修改root用戶的密碼即可。
1.首先看一下報錯信息1045
2.看到這個問題,我們可以找到我們MySQL安裝路徑下的my.ini文件,使用記事本或者edit打開它。
如果不能打開放到桌面進行打開修改。
3.找到[mysqld] 一般在第一行,在它的下面加上skip-grant-tables
加上之后的樣子
那么skip-grant-tables是用來干什么的呢?
skip-grant-tables作為啟動參數(shù)的作用:MYSQL服務器不加載權限判斷,任何用戶都能訪問數(shù)據(jù)庫。
注意:但是加上它會降低我們數(shù)據(jù)庫的安全性,可以在解決問題之后刪除掉它。
如果沒有my.ini文件,可以在桌面新建my.ini配置文件,其配置內容如下
注意:要修改成你自己存放的mysql路徑。
[mysqld]
skip-grant-tables
#datadir=C:\Program Files\mysql-8.0.31-winx64
# 設置3306端口
port=3306
# 設置mysql的安裝目錄
basedir=C:\Program Files\mysql-8.0.31-winx64
# 設置mysql數(shù)據(jù)庫的數(shù)據(jù)的存放目錄
datadir=C:\Program Files\mysql-8.0.31-winx64\\Data
# 允許最大連接數(shù)
max_connections=200
# 允許連接失敗的次數(shù)。
max_connect_errors=10
# 服務端使用的字符集默認為utf8mb4
character-set-server=utf8mb4
# 創(chuàng)建新表時將使用的默認存儲引擎
default-storage-engine=INNODB
# 默認使用“mysql_native_password”插件認證
#mysql_native_password
default_authentication_plugin=mysql_native_password
federated
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
# 設置時區(qū)(mysqld下)
default-time_zone='+08:00'
[mysql]
# 設置mysql客戶端默認字符集
default-character-set=utf8mb4
[client]
# 設置mysql客戶端連接服務端時默認使用的端口
port=3306
default-character-set=utf8mb4
4.使用管理員身份打開命令行(cmd)
(1)在命令行中輸入 mysql -u root -p,這個命令是連接數(shù)據(jù)庫服務器的命令;遇到Enter passward:直接回車;
顯示這個樣子就是成功進入數(shù)據(jù)庫了
(2)接著在下方執(zhí)行操作:use mysql; 這是選擇我們的數(shù)據(jù)庫
(3)修改數(shù)據(jù)庫用戶root密碼:update user set password=password(“123456”) where user=“root”;
需要注意的是:我的MySql版本是8.0.31的相對于5.7版本 在執(zhí)行上述的修改語句是有語法錯誤的。
所以我這里使用:ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH mysql_native_password BY ‘password’; 來修改密碼的。
看到這個結果說明我們已經修改成功了
(4)刷新數(shù)據(jù)庫 flush privileges; 這樣就OK了
?最后,人的惰性是非??膳碌模嚯x上次寫博客快半年了,希望大家也有養(yǎng)成好習慣!