2026-06-06 mysql ERROR 1045 (28000)

2026-06-06 mysql ERROR 1045 (28000)

我:
ERROR 1045 (28000): Access denied for user ‘root‘@’localhost’ (using password: YES)
???MacBook-Air:~ ???$ sudo mysql -u root -p

GPT:
ERROR 1045 (28000) 的錯誤表明您在嘗試使用 root 使用者進入 MySQL 時遇到了訪問被拒的問題。這通常是因為您輸入的密碼不正確,或者 root 使用者的帳戶有權限設置問題。

以下是一些解決此問題的步驟:

1. 使用 sudo 嘗試進入 MySQL

您可以通過使用 sudo 命令,以獲取管理員權限進入 MySQL,這樣可以避開一些訪問限制。請確保在終端中以正確的方式輸入以下命令:

1
sudo mysql -u root

這樣可以繞過輸入密碼的過程,直接使用 root 權限進入 MySQL。如果這樣可以進入,則表示可能是 root 使用者的密碼配置問題。

2. 使用無密碼方式登錄

如果您使用 sudo 也無法進入,可能是 root 使用者的密碼配置有問題,可以通過以下步驟重置密碼:

步驟 1:停止 MySQL 服務

您首先需要停止 MySQL 服務,具體命令如下(取決於您的安裝方式):

1
sudo brew services stop mysql

或者:

1
sudo /usr/local/mysql/support-files/mysql.server stop

步驟 2:安全模式啟動 MySQL

然後,您需要使用 不檢查權限的模式(safe mode)來啟動 MySQL,以便能夠不使用密碼進入 MySQL:

1
sudo mysqld_safe --skip-grant-tables &

這會在跳過權限檢查的模式下啟動 MySQL,使您可以重置 root 密碼。

步驟 3:進入 MySQL 並重置 root 密碼

現在您可以不需要密碼進入 MySQL:

1
mysql -u root

進入 MySQL 提示符後,使用以下 SQL 指令來重置 root 的密碼:

1
2
3
USE mysql;
UPDATE user SET authentication_string = PASSWORD('新密碼') WHERE User = 'root';
FLUSH PRIVILEGES;

記得將 新密碼 替換為您希望設置的密碼。然後輸入以下命令退出:

1
exit;

步驟 4:重新啟動 MySQL 服務

完成密碼重置後,您需要重新啟動 MySQL 服務:

1
sudo brew services start mysql

或者:

1
sudo /usr/local/mysql/support-files/mysql.server start

步驟 5:使用新密碼登錄

現在您可以使用新設置的密碼嘗試再次登錄:

1
mysql -u root -p

系統會提示輸入新密碼,輸入正確後應該能成功登錄。

3. 檢查 MySQL 的配置文件

如果您仍然無法登錄,可能是 MySQL 的配置文件有一些設置導致權限出現問題。您可以檢查 my.cnf 文件(通常位於 /etc/mysql/my.cnf/usr/local/mysql/my.cnf)中的相關設置,特別是 bind-addressskip-grant-tables 等選項,確保它們設置正確。

小結

  1. 嘗試使用 sudo 來進入 MySQL,跳過密碼檢查。
  2. 如果無法進入,使用安全模式啟動 MySQL 並重置 root 密碼。
  3. 檢查 MySQL 配置文件中的設置,以排除其他訪問問題。

這些步驟應該能夠幫助您解決 ERROR 1045 的問題。如果問題依然存在,請告訴我更多詳細信息,我會繼續幫助您!

我 :
???-Air:~ root# which mysql

/usr/local/mysql/bin/mysql

GPT:

看起來您的 MySQL 安裝在 /usr/local/mysql/bin/mysql 路徑下。這意味著 MySQL 可執行文件的路徑是 **/usr/local/mysql/bin/mysql**。

如果您嘗試進入 MySQL,但仍然遇到 ERROR 1045 (28000): Access denied,請參考以下解決步驟:

1. 使用 MySQL 完整路徑進入

可以嘗試使用完整路徑進入 MySQL,這樣可以確保使用的是正確版本的 MySQL:

1
sudo /usr/local/mysql/bin/mysql -u root -p

然後,根據提示輸入密碼。

2. 確認 MySQL 是否已經啟動

MySQL 服務需要正常運行才能連接。如果您無法連接,可能是 MySQL 服務未啟動。請使用以下命令來啟動 MySQL:

1
sudo /usr/local/mysql/support-files/mysql.server start

然後再次嘗試使用完整路徑連接。

3. 重置 MySQL Root 密碼

如果密碼仍然無法使用,可以嘗試重置 root 密碼,具體步驟如下:

步驟 1:停止 MySQL 服務

首先需要停止 MySQL 服務:

1
sudo /usr/local/mysql/support-files/mysql.server stop

步驟 2:使用安全模式啟動 MySQL

在安全模式下啟動 MySQL,不檢查權限:

1
sudo /usr/local/mysql/bin/mysqld_safe --skip-grant-tables &

這樣可以跳過權限檢查,並允許您無需密碼登錄 MySQL。

步驟 3:無密碼進入 MySQL

使用以下命令無需密碼進入 MySQL:

1
sudo /usr/local/mysql/bin/mysql -u root

步驟 4:重置 root 密碼

在 MySQL 提示符中執行以下命令來重置 root 密碼:

1
2
3
USE mysql;
UPDATE user SET authentication_string = PASSWORD('新密碼') WHERE User = 'root';
FLUSH PRIVILEGES;

新密碼 替換為您想要設置的密碼。

步驟 5:重新啟動 MySQL 服務

輸入 exit 退出 MySQL 提示符,然後重新啟動 MySQL 服務:

1
sudo /usr/local/mysql/support-files/mysql.server start

步驟 6:使用新密碼登錄

現在可以使用新密碼登錄 MySQL:

1
sudo /usr/local/mysql/bin/mysql -u root -p

系統會提示您輸入新設置的密碼。

小結

  • 確認使用正確的 MySQL 可執行文件路徑 /usr/local/mysql/bin/mysql
  • 確保 MySQL 服務已經啟動。
  • 如果遇到訪問被拒的問題,使用安全模式進入並重置 root 密碼。

這些步驟應該可以幫助您解決連接 MySQL 時的問題。如果還有其他問題,請隨時告訴我。