簡體   English   中英

使用Python遠程訪問mySQL

[英]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.

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