[英]Remote MySQL Connection Error SQLSTATE[HY000] [2002]
我開發了一個 Laravel 項目,它連接到遠程站點上的 MySQL 服務器(通過靜態 IP)。 在每個站點上,我都在路由器上設置了端口轉發(沒有限制),以便將 MySQL 服務器公開給 Internet。 此外,在每個遠程 MySQL 服務器上,我都創建了一個沒有 IP 限制的用戶,並且該服務正在偵聽所有接口。 我已經驗證公共連接正在工作,因為從我的開發服務器(這是我家中的筆記本電腦)我能夠執行查詢並從遠程站點檢索結果。 我已經在我的托管服務提供商的生產服務器中部署了該項目(通過 Plesk)。 除了一件事,該項目工作正常。
當代碼(在生產服務器上)嘗試連接到任何遠程 MySQL 服務器時,會收到錯誤SQLSTATE[HY000] [2002] An attempt was made to access a socket in a way forbidden by its access permissions
。 我已驗證生產服務器上每個遠程 MySQL 服務器的連接字符串與我的本地服務器相同。
可能是什么問題?
感謝您的時間。
編輯:以下代碼在本地機器上成功,但在生產中失敗。
$remote_db = Store::find(1)->db_url; // mysql://db_user:db_pass@public_ip:18889/database
Config::set("database.connections.remote-db-1", [
'url' => $remote_db
]);
DB::connection('remote-db-1')
->select('SELECT * FROM my_table'); // this produces the error
聯系我的托管服務提供商后,他們告知防火牆規則禁止通過異常端口(80,443,3306 等除外)的所有傳出流量。 所以我將遠程 MySQL 上的所有端口從 18889 更改為 3306,一切正常。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.