iT邦幫忙

0

mysql開啟遠端連線

  • 分享至 

  • xImage

小弟想用本機做為MySQL Server,讓其它電腦可以遠端連線進來這台本機存取資料庫的資料,以下是在連線前做的一些確認

本機新建的MySQL使用者admin存取權限如下
https://ithelp.ithome.com.tw/upload/images/20220318/20128158ngr05mCeZs.png

本機的3306埠已開啟
https://ithelp.ithome.com.tw/upload/images/20220318/20128158JX4QYRVq1V.png

本機的防火牆沒有擋3306埠
https://ithelp.ithome.com.tw/upload/images/20220318/201281587WAlqqo2ws.png

在其它電腦要連線進來時,提示了以下的錯誤
https://ithelp.ithome.com.tw/upload/images/20220318/20128158Nib6ERLZw1.png

請問邦友還有什麼地方需注意而未注意的嗎?

我問個愚昧的問題
為什麼你 admin 的 host 是 % ?
tpdnxu iT邦新手 5 級 ‧ 2022-03-21 22:59:40 檢舉
因為這樣可以讓任何的主機都可連進來這個資料庫
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
2
海綿寶寶
iT邦大神 1 級 ‧ 2022-03-18 17:03:25

試試看

1.設定遠端使用者訪問許可權:
 // 任何遠端主機都可以訪問資料庫  
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'WITH GRANT OPTION;       
//需要輸入次命令使修改生效
mysql> FLUSH PRIVILEGES;      
//退出
mysql> EXIT     

資料來源

看更多先前的回應...收起先前的回應...
tpdnxu iT邦新手 5 級 ‧ 2022-03-18 17:19:11 檢舉

同樣提錯 ERROR 2003 (HY000): Can't connect to MySQL server,在本機測試登入都正常,但遠端就不行登入了

DennisLu iT邦研究生 1 級 ‧ 2022-03-18 17:30:03 檢舉

如果同樣區網
同一個區網的電腦 訪問到你的區網IP mysql嗎?
如果不是同一個區網
是跨外網
你的IP是Public IP嗎?
你的Firewall有開port 給這台電腦嗎?

你的貼圖
只能表示 同一個區網電腦透過區網IP訪問可以連線你的資料庫
如果是不同地方的遠端
那一定會關係到你的硬體防火牆
但你並沒有提這部分
如果你不是網路管理員,那基本上是沒辦法成功的。

除非你是直接把實體IP直接給這台電腦使用。
但這太不安全了。

你是下
GRANT ALL PRIVILEGES ON . TO 'admin'@'%'WITH GRANT OPTION;
還是下
GRANT ALL PRIVILEGES ON . TO 'root'@'%'WITH GRANT OPTION;

如果你是下 root
就改成 admin 試試看
因為你是用 admin 而非 root 連線

tpdnxu iT邦新手 5 級 ‧ 2022-03-18 18:04:54 檢舉

感謝您的說明,從其它的IP連進來應該是跨外網了,因為本機的3306埠有處於監聽狀態,所以我想說這樣就已經是開3306埠給本機了,看來好像不是這樣,可能和您提到的硬體防火牆有關聯

tpdnxu iT邦新手 5 級 ‧ 2022-03-18 18:14:27 檢舉

我先下了root的那一行命令用root登入後不行,又再下admin的那一行用admin的登入也是不行

那我就不知道了
等待其他高手的正確解答囉

1

從錯誤訊息來看,你是連進來這台機器都不能。

先確定你的 host 可以在其它機器取得正確的IP指向。
在檢查網路連結是否可以正常。

一般來說下

telnet 你的HOST 3306

先看看有無正常的回應值。

記得。HOST需要是是真正的IP。而不是 localhost 或是 127.0.0.1 這種魔術IP。

試到正常連線或是出現權限錯誤的問題。才開始去處理權限的問題。
目前是連連結都連不到,再怎麼處理權限問題也沒用。

0
camabula
iT邦新手 3 級 ‧ 2022-03-19 14:02:46

我之前是修改了my.cnf檔的內容,加了如下設定:

bind-address = 0.0.0.0 //允許任意IP連線

如果是Windows版的MySQL,則要修改my.ini檔。

我要發表回答

立即登入回答