簡體   English   中英

連接到MySQL數據庫遠程

[英]Connect to MySQL Database Remote

我在另一台計算機上有一個MySQL數據庫,並且希望能夠從其他計算機(甚至是位於不同網絡上的計算機)進行連接。 我做了以下

的MySQL

CREATE USER 'username_here'@'%' IDENTIFIED BY 'password_here';

然后

GRANT ALL PRIVILEGES ON *.* TO 'username_here'@'%';
FLUSH PRIVILEGES;

我也注釋了my.ini文件中的bind-address (我有Windows)

然后,在Java應用程序(利用MySQL數據庫)中,我做了

jdbc:mysql://public_ip:3306/database_name

我在jdbc網址中使用了我的公共IP地址。

最后,我在防火牆中打開了端口3306。 但是我無法遠程連接到數據庫。 我還需要做什么其他事情才能連接?

首先:不要公開發布您的真實IP地址和端口,也不要說您打開了防火牆。 也許現在黑客發現黑客很容易,但是您不能依靠它;-)。

對您的問題:也許您將mysql配置為偵聽localhost 3306而不是您的公共IP地址。 請在您的shell中輸入netstat -ltn 如果有一行

tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN

並且沒有公共主機地址,那么您只能從網絡內部進行訪問。 然后,您必須在mysql ini文件中配置主機地址。 (只需將127.0.0.1或localhost替換為您的IP地址即可。

僅供參考:對於您的數據庫服務器,有一個公開開放的端口,特別是MySQL default( 3306 )端口是一個非常糟糕的主意。 您只是在邀請人們嘗試闖入您的數據庫。

要遠程訪問MySQL ,請執行以下步驟:

1)注釋my.cnf文件中的以下幾行。

#bind-address           = 127.0.0.1
#skip-networking

2)重新啟動mysql服務器。

net stop MySQL   
net start MySQL

如果得到The service name is invalid則打開任務管理器=>單擊服務按鈕=>搜索MySql服務=>重新啟動

與mysql遠程連接:

mysql -h HOST -u USERNAME -pPASSWORD

您還可以使用nmap命令檢查打開的端口:

nmap -PN Ip_address

注意:在您的問題中屏蔽您的IP地址。

MySQL Java連接性:

Class.forName("com.mysql.jdbc.Driver");
// Setup the connection with the DB
Connection connection = DriverManager.getConnection("jdbc:mysql://publicIpAddress/dbName?",
                        sqluser,password);

暫無
暫無

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

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