簡體   English   中英

MySQL - 訪問被拒絕,直到我通過 Workbench 或 CLI 連接

[英]MySQL - access denied until I connect via Workbench or CLI

我遇到了從我的 localhost PHP 站點到我的 localhost MySQL DB 的間歇性連接問題。 它讓我返回Access Denied for 'user'@'localhost' (using password: YES) ,這是錯誤密碼的典型情況。 我進行了測試以確保它沒有任何特別之處,並且我可以使用root獲取它,所以我很困惑。 我什至用相同的用戶名和密碼設置了一個127.0.0.1 、一個localhost和一個%帳戶。 他們都沒有工作,但root工作得很好。 這是我最大的困惑 - 'root' 工作沒有問題,但這個新用戶根本不工作。

我已經查看了很多問題(見下文)和 SE 和其他論壇上列出的與Error 1045, Access Denied和所有變體相關的問題,大多數歸結為拼寫錯誤、拼寫錯誤或類似問題自然。 我已經復制並粘貼了所有代碼周圍的所有相關字符串,所以這不是問題。 我沒有匿名用戶,所以這不是問題。 沒有 DNS 問題,它是 localhost,我已經嘗試了它的每一次迭代。

問題來自為我解決問題的方法。 如果我通過 MySQL Workbench 或 CLI 使用新帳戶打開與數據庫的連接,突然該網頁將正常工作,通過新帳戶連接也沒有問題。 但是,如果我運行更改新帳戶信息的腳本,即使我什么都不做,並重新加載頁面,它也會再次拒絕訪問,直到我通過 MySQL Workbench 或 CLI 再次打開該連接。

它每次都可以正常工作。 我不知道發生了什么 - 該帳戶是否需要通過 CLI 或 Workbench 登錄才能通過 PHP 使用? 或者還有什么我在這里想念的嗎?

PHP代碼

$servername='localhost';
$username='website';
$password='password';
$database='db_1';

$conn=new mysqli($servername, $username, $password, $database);
if($conn->connect_error) die("connection failed");

MySQL 憑證創建

create user website@'localhost' identified by 'password';
grant SELECT, INSERT, DELETE on db_1.* to 'website'@'localhost';

一些沒有幫助的 SO 問題:
MySQL - 拒絕用戶訪問
用戶@'localhost' 對數據庫 '' 的訪問被拒絕
來自php函數的“連接失敗:用戶'root'@'localhost'的訪問被拒絕(使用密碼:YES)”

編輯 1 :我在本地計算機上運行 WAMP 堆棧。 我的防火牆打開了端口 3306(MySQL 正在偵聽端口)。 我沒有使用 CPanel(我認為這就是它的名字)。 我剛剛進行了測試,它也不適用於root ,直到我繼續通過 CLI 或 Workbench 重新創建到數據庫的新連接。

它返回的錯誤也包括這個,但我從來沒有出現過這個,因為我以前從未嘗試在任何一個上安裝 OpenSSL: mysqli::__construct(): PHP was built without openssl extension, can't send password encrypted in [file] 但是一旦我通過 CLI(沒有花哨的標簽或任何東西,所以我認為我沒有使用 SSL)或通過 Workbench 建立連接,這種情況就會消失。

編輯 2:兔子洞變得更深然后停止了,但我仍然對如何正確配置我的設置以在將來避免它/修復它以更安全感到困惑。 解決方案(我不能把它當作我自己的,所以如果你們中的一個人想解釋然后聲稱這個,去吧 - 我會接受它)是回到我的 MySQL 服務器並重新配置Authentication Method不使用Strong Password Encryption ,而是選擇Legacy Authentication Method 如果有人可以解釋如何使我的 PHP 與較新的身份驗證方法兼容(我還沒有看過,但會在我發布此內容后),我將不勝感激。

解決方案是返回到我的 MySQL 服務器並重新配置Authentication Method以不使用Strong Password Encryption ,而是選擇Legacy Authentication Method

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM