[英]Remote access to mySQL using Python
我無法通過Python遠程連接到我的mySQL數據庫。
我使用以下連接到mySQL:
import mysql.connector
cnx = mysql.connector.connect(host='XXX.XXX.XXX.X',user='XXXX',password='XXXXXX',database='testdb')
但是我收到以下錯誤:
2003: Can't connect to MySQL server on '%HOST%:3306' (10060 A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond)
服務器正在運行,當我在計算機上運行相同的代碼時,我運行服務器使用'localhost'
mysql.connector cnx =
mysql.connector.connect(host='localhost',user='XXXX',password='XXXXXX',database='testdb')
它工作,我可以修改數據庫中的數據。 我試圖從另一台計算機遠程連接它。
我嘗試過使用GRANT ALL ON *.* TO User@Host IDENTIFIED BY 'password';
但沒有結果。 我檢查了防火牆並允許所有傳入和傳出連接通過默認使用的端口3306。
我是mySQL的新手,真的不知道該怎么做。 我甚至不知道我是否使用正確的主機名:')我使用運行服務器的計算機的IP地址,我認為是對的。
您不需要向用戶授予所有權限。 您需要告訴MYSQL該用戶是否可以從遠程位置登錄。
事實上,由於您現在允許通過此用戶帳戶進行遠程訪問,因此您應確保它只能訪問所需的數據庫,並且絕對不能使用GRANT
例如
CREATE USER 'myuser'@'%' IDENTIFIED BY 'mypass';
將允許此用戶從任何IP地址連接。 為了更安全,您應該嘗試更具體,並且如果可以,請指定單獨的IP地址
CREATE USER 'myuser'@'11.22.33.44' IDENTIFIED BY 'mypass';
請記住,您在此處創建了一個新用戶帳戶,因為您已經擁有myuser@localhost
無論哪種方式,您都需要確保密碼是強密碼,特別是您使用%
any ip選項
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.