[精讚] [會員登入]
1648

【MySQL Workbench】如何透過TCP/IP進行SSL連線到遠端MySQL資料庫

通常MySQL伺服器都不是只提供某人連線,而是多人都可以連線進來使用,這時就不能繼續使用localhost的那種寫法

分享此文連結 //n.sfs.tw/15449

分享連結 【MySQL Workbench】如何透過TCP/IP進行SSL連線到遠端MySQL資料庫@小編過路君子
(文章歡迎轉載,務必尊重版權註明連結來源)
2021-10-25 21:02:56 最後編修
2021-10-24 15:05:21 By 過路君子
 

大家好這裡是發現這方面中文資料不完全的小編過路君子

基本上小編查到後來就直接放棄了,跑去翻英文資料去了,目前現有的中文資料太舊了。

 

 

那小編實作是用 Windows版的 MySQL Workbench去連線 Linux版的 MySQL資料庫

各位在開始前請先確認一下版本資訊,因為光是 MySQL 5.X 和 MySQL 8.X 所輸入的指令就有差異了。

那我們一樣不廢話,直接上版本表,但是由於這一次是實作在跨平台上,所以小編會特地加上該軟體安裝在哪個平台上面。

軟體名稱 版本 運行平台
MySQL Workbench 8.0.27 Windows
MySQL 8.0.26 Linux
Windows 10 21H1 Windows
CentOS 8 release 8.3.2011 Linux

 

Server端設定

首先,我們先連線到 mysql資料庫裡面,小編這邊使用 root登入。

如果各位是想要拿現有的帳號做遠端連線,等等要注意 MySQL帳號可連線 IP的設定。

要不然就會發現明明一切操作正確最後卻被 MySQL擋住不給連線。

(所有圖片點擊都可以放大、變高清)

首先先下這串指令創建一個新的使用者。

注意,這個使用者只能透過 SSL連線,嘗試使用密碼直接登入會被 MySQL拒絕。

CREATE USER 'newUser'@'%' identified by 'User123456;' require x509;

各位可將 'newUser' 和 identified by後面的字串替換成自己喜歡或習慣的名子。

identified by後面的字串是登入密碼,之後會用到,至於密碼強度要求就要看各位安裝 MySQL資料庫的時候是選擇 0, 1還是 2了。

那接下來新增一個資料庫,等等會設定權限讓這位新增的使用者能全權管理。

當然各位要拿現有的資料庫來開權限給這位使用者使用也是可以的,端看各位需求。

CREATE DATABASE userCanUse;

創建好之後授予這位使用者權限來完全使用這個資料庫,那如果各位是拿現成的資料庫則自行替換成該資料庫的名子。

 GRANT ALL PRIVILEGES ON userCanUse.* TO 'newUser'@'%';

最後我們在做最後的確認,確認使用者的登入位置有被正確設置成「%」。

SELECT User,Host FROM mysql.user;

看到了我們剛剛新增的使用者了!就可以關閉 MySQL囉~

那至於「%」、「localhost」又是什麼呢?實際上是指可以登入的位置,% 代表任何 IP位置都可以登入,localhost代表只有本機能登入。

換言之,如果當時創建使用者帳號的時候,輸入「'newUser'@'8.8.8.8'」的話,那就只能在IP為 8.8.8.8的位置進行登入,其他 IP都會被 MySQL拒絕。

 

至此 MySQL方面的準備工作就到這裡為止,可以退出 MySQL了。

等等!還沒有結束,因為我們要使用 SSL連線,所以我們要先找出 key並傳給 client端。

MySQL金鑰預設放置位置在/var/lib/mysql裡面。

而我們只需要上圖紅框中的那三個檔案,分別是「ca.pem」、「client-cert.pem」和「client-key.pem」。

要將這三個檔案傳送給客戶端的使用者,至於要怎麼傳送就是各位八仙過海 —— 各憑本事了。

這邊小小的提醒一下,如果各位是用一些軟體(例如:WinSCP)來用一般使用者連線到伺服器裡直接下載檔案,前兩個檔案可能沒問題,在下載 client-key.pem就會出問題了,因為這個檔案的權限是 600,注意注意!

確認對方有收到這三個檔案之後就可以了喔!

至於那個神奇的 PaperMC-quickstart.bat檔案是什麼呢?可以到小編的這篇文章去看看!

 

但是還有一件非常重要的事情要做,沒錯!就是開防火牆,要不然 MySQL Workbench是沒辦法連進 MySQL伺服器的。

MySQL預設使用的 port是 3306,各位檢查一下防火牆是否有允許這個 port的通過;如果沒有,則快速下達下方三個指令來開啟(要有 root權限):

firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload
firewall-cmd --zone=public --list-all

輸入完後應該會出現下方的畫面,各位確認一下是否有出現下方紅線處的文字。

這樣 Server端的準備就到此結束了,可以開始設置 Client端的設定了。

 

Client端設定

首先先到 MySQL Workbench官方下載點,選擇適合自己電腦的版本下載並安裝完成 MySQL Workbench。

安裝完成後開啟並執行。

初始畫面應該如上圖,點擊上圖紅框處的「+」。

如果各位有更改 MySQL所在的 port,那 port那欄位要跟著改成各位設定的新 port點。

還記得剛剛從伺服器端所接收的那三的檔案嗎?沒錯,就是要用在這裡的,像上圖那樣依序告知 MySQL Workbench。

如果只是一般無強制使用 SSL連線的帳號做連線,則無須對這頁做設定。

雙擊剛剛我們所創建的連線規則,進行連線。

這時輸入我們在創建使用者時候所設置的密碼。

以這邊為例,小編就輸入「User123456;」來進行連線。

看到這個畫面就代表已經跟伺服器成功取得連線了呦。

如果看到的是無法連線的紅字,請確認 MySQL是否有開啟 SSL連線的功能或是檢查是否被其他防火牆給阻擋連線了。

因為小編之前遇過本來可以連線上,結果換了一個地方,就被那個機關的防火牆給阻擋連線,導致連線失敗。

那接下來要做些什麼呢?來寫一些簡單的 SQL程式碼來做測試是否真的成功連線。

小編在此提供一個簡單的 SQL程式碼來供各位測試:

SHOW DATABASES;
USE userCanUse;

CREATE TABLE test(
Id INT PRIMARY KEY UNIQUE AUTO_INCREMENT NOT NULL,
`name` VARCHAR(50) NOT NULL);

SHOW TABLES;
INSERT INTO test VALUES (1, 'joe'), (2, 'bob'), (3, 'tom');
SELECT * FROM test;

 

 

 

後記:

小編在第一次進行連線的時候,失敗了,然後就丟著,大概過了十分鐘後才想到是不是防火牆忘了開...一查,果然沒開,這樣當然無法連線啦!

END

你可能感興趣的文章

【Wicket】[nonce]如何導入css以及javascript 如果只是用一般的 HTML link 或是 script 標籤來寫,會被 CSP 擋住,禁止加載資源,那我們除了關閉 CSP 以外還有沒有辦法來解決呢?

【Maven】如何創建一個簡單可部屬的WAR檔 滿重要的一個大功能,在使用JAVA網頁伺服器的時候一定會需要這個WAR檔來進行部屬

【Wicket】[URI]使用Java取得目前網址 這是個還滿常用的功能,可惜 Wicket 沒有內建函式可以快速取得我們要的部分,只能依靠我們自己後期的字串剖析

【C++】使用SFML製作讓方塊落下的畫面 從開啟新視窗延伸過來的應用(?),配合上一篇所使用到開啟一個可渲染視窗的那堆程式碼的延伸。

【Python3】[Django] (Windows / Liunx) 如何從零開始創建一個網站 除了最基本的運作以外,還小小的加上了如何自導向特定目錄。

【C++】SFML安裝於Microsoft Visual Studio 2019 此方法僅適用單個C++專案,因為一次就適用整台電腦的方式有人寫了,而且寫得非常不錯。

我有話要說

>>

限制:留言最高字數1000字。 限制:未登入訪客,每則留言間隔需超過10分鐘,每日最多5則留言。

訪客留言

[無留言]

隨機好文

高捷少女:購票大作戰① 「各位乘客,本班機即將降落,感謝各位乘客的搭乘……」隨著空中小姐的廣播音,那架飛機逐漸降落在地面,裡面的乘客們也紛紛開始整理自己的行李。 那個有著歐美人五官的少女抓緊包包,看著外面的小港機場,臉上緩緩

婕兒──她的青春③ 「墮天使穹音!」婕兒拿出平底鍋。 耐耐憋著笑搖搖頭。「不是喔,她是我的……我的……」 「替身。」小穹小聲提醒忘記台詞的耐耐。

【歌評】蓮台野夜行-少女幻葬~ Necro-Fantasy 這首歌就像墜入無盡深淵的同時面臨最終決戰;不管贏還是輸,你終將失去一切,永遠消失

艾米莉亞和高捷戀旅③ 「妳最好給我一個完整的理由,告訴我妳為什麼要這麼做。」艾米雙手叉腰,看著這位冒名參賽的後輩。「我會根據妳的說詞來判定妳違反規定的懲處。」

【數學】線性規劃——題型演練 某公司招聘新員工,共有800人應徵參加筆試。筆試場地借用某高中教室,該校租借的大教室有42間,每間可容納40人,每間租金