---
# System prepended metadata

title: '【MySQL連線錯誤】Your connection attempt failed for user ‘root‘ to the MySQL server at 127.0.0.1:3306'

---

# 【MySQL連線錯誤】Your connection attempt failed for user ‘root‘ to the MySQL server at 127.0.0.1:3306

## 問題描述
網路上找的圖片（因為忘記截圖，修好了才想到，只好從網路上抓下來）
![image](https://hackmd.io/_uploads/HJdad9ankl.png)
圖片來源：https://blog.csdn.net/m0_65952558/article/details/134903402

反正問題就是輸入密碼都錯誤，沒辦法連上DB，但我根本沒有去動密碼，之前也發生過一次就是完全登不進去的狀況，就乾脆記錄下來，這裡主要的解決方式就是直接去改掉密碼就對了（雖然我還是不知道為啥密碼會被換掉）。

然後發生問題的環境是Windows，另一台Linux上的MySQL就從來沒遇過這種問題，所以接閜來的解決方法是針對Windows解決。

## 解決方法
### Step 1
打開「服務」
![image](https://hackmd.io/_uploads/ryOk55T21x.png)

找到「MySQL80」（或你自己的版本），按下「停用」
![image](https://hackmd.io/_uploads/S1hEc9a3Jx.png)

### Step 2
先找到你的MySQL的bin資料夾位置，像我的就在"C:\Program Files\MySQL\MySQL Server 8.0\bin"，然後先複製好
![image](https://hackmd.io/_uploads/SJ3Goqa3kl.png)

用「以系統管理員身分執行」打開cmd
![image](https://hackmd.io/_uploads/Hka959Th1g.png)

先cd進入"C:\Program Files\MySQL\MySQL Server 8.0\bin" bin資料夾的位置
```bash!
cd "C:\Program Files\MySQL\MySQL Server 8.0\bin"
```

在cmd中執行以下內容：
```bash!
mysqld --console --skip-grant-tables --shared-memory
```
接著再執行：
```bash!
mysqld --defaults-file="C:\ProgramData\MySQL\MySQL Server 8.0\my.ini" --console --skip-grant-tables --shared-memory
```
![image](https://hackmd.io/_uploads/HkV6jqT21g.png)

執行到這裡，我們先別把上面這個視窗關掉！接下去看下一步驟

### Step 3
上面那個視窗絕對不要關掉，這時我們再次用「以系統管理員身分執行」打開另一個全新的cmd視窗
![image](https://hackmd.io/_uploads/Hka959Th1g.png)

接著不需要再次cd進入任何資料夾中，直接執行以下內容：
```bash!
mysql -u root -p
```
直接按下enter跳過輸入密碼（這邊可以跳過輸入密碼，其實就是Step 2那個還開著的cmd視窗的功勞）

跳過輸入密碼步驟，會發現我們進入到mysql的世界（抱歉我不知道該怎麼稱呼他）

這時輸入以下，切記最後一定要有分號再按enter鍵，才會執行我們輸入的SQL語法：
```bash!
use mysql; 
```

進來後依敘述入以下內容，一樣請記得每個SQL指令後方一定要有分號！
```bash!
// 先把密碼設為空
update user set authentication_string='' where user='root';
flush privileges;

// 這裡才是真正再設置密碼的步驟
alter user 'root'@'localhost' identified by 'mypasswardYaaa';
```

當我執行完以上內容後，我的密碼就變成"mypasswardYaaa"啦

接著就可以關掉這兩個cmd視窗，也一定得先關掉

關好後，回到Step 1提到的「服務」，再次找到「MySQL80」並且將它啟動

再重新開啟MySQL並連線輸入剛才改好的密碼"mypasswardYaaa"，基本上就可以成功連上了！

## 參考資料
1. [Mysql8.0重置密码（windows）](https://www.cnblogs.com/jizhong/p/16354687.html)
2. [MySQL8忘记登录密码 skip-grant-tables写到配置文件无效 不能免密码登录](https://www.wanmait.com/note/abner/sql/4f90bf07774a47acbe3c036431287ed1.html)