首頁 > 軟體

Ubuntu安裝Mysql+啟用遠端連線的完整過程

2022-06-18 18:02:12

背景

用的是百度雲的雲伺服器(其他雲伺服器同理),系統是Ubuntu 20.04 LTS,Mysql版本8.0+,需求是在Windows上開發,可以隨時遠端連線讀寫伺服器上的Mysql

建立到伺服器的遠端連線

用ssh使用者端或者雲伺服器廠家提供的網頁版控制檯都行,只要你能連上伺服器就行

順便私心推薦一個好看又好用的ssh使用者端:NextSSH

用apt-get安裝mysql

先更新一下apt倉庫:

sudo apt-get update

順便說一下,因為不知道你們用的都是什麼賬戶,我也搞不清楚哪些指令許可權要求比較高,所以我所有指令都加sudo了,這樣不管是誰複製貼上都能直接用,不會出現許可權問題。
然後安裝mysql-server:

sudo apt-get install mysql-server -y

到這一步其實mysql就已經安完了並且自動啟動了,可以看一下:

sudo service mysql status

設定root密碼

此時mysql的root賬戶沒有設定密碼,可以直接用mysql指令登入:

設定一下root的密碼(mynewpassword部分改成你自己要設定的密碼):

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password by 'mynewpassword';

退出,輸入mysql指令發現不能直接登入了:

目前為止可以直接在伺服器上用mysql了。

編輯組態檔監聽遠端連線

預設情況下,MySQL 資料庫僅監聽本地連線,如果想讓外網遠端連線到資料庫,我們需要修改組態檔,讓 MySQL 可以監聽遠端固定 ip 或者監聽所有遠端 ip。
這裡需要使用一個命令列文字編輯器,我用的vim所以就教一下vim,你們要是會nano或者別的自然知道該怎麼弄,要是聽不懂就照我的來。安裝vim:

sudo apt-get install vim -y

然後用vim開啟mysqld.cnf組態檔:

sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

找到bind-address = 127.0.0.1這一行:

這個值是127.0.0.1的時候只監聽本地連線,改成0.0.0.0可以監聽所有連線,或者也可以改成僅允許指定ip連線都可以。
現在vim是閱讀模式,按一下i進入編輯模式,然後用上下左右鍵定位到這行(最下面顯示INSERT的時候表明處於編輯模式,按Esc可退出返回到閱讀模式):

改完之後按Esc退出編輯模式,然後輸入:wq儲存退出。(若輸入:q則退出但不儲存)
重啟mysql service使剛才的修改生效:

sudo service mysql restart

允許root賬號使用遠端連線

mysql預設只允許root賬號在本地使用,需要修改一下允許遠端使用root賬號(沒試過其他賬號的情況,但原理一致)。先登入mysql:

mysql -u root -p

輸入密碼,登入。
然後選擇mysql資料庫:

use mysql;

檢視賬號的主機許可權:

select user, host from user;

host處為localhost時只允許本地使用,改成%即可遠端使用:

update user set host='%' where user='root';

退出mysql。

檢查ubuntu自帶的防火牆狀態

sudo ufw status

如果是inactive說明防火牆沒開,那就不用管了。防火牆是幹嘛的呢,我自己的理解就是,如果開了防火牆,那伺服器上所有埠都是預設禁止連線的,只有你允許的埠才允許連線,類似於這種:

所以如果防火牆開了,那要麼把防火牆直接關了:

sudo ufw disable

要麼新增一條規則讓防火牆放行3306埠(mysql的預設埠):

sudo ufw allow 3306

檢查雲伺服器廠商的防火牆狀態

開啟雲伺服器的後臺管理頁面,找到防火牆:

雲伺服器廠商預設只開啟幾個最常用的埠,其他埠都是預設關閉的,所以也要在這裡新增一條規則放行3306埠:

測試連線

隨便找個資料庫管理的軟體測試一下:

就連上了。常見的問題應該都提到了,如果還是連不上那你們再想想辦法吧。

到此這篇關於Ubuntu如何安裝Mysql+啟用遠端連線[完整版]的文章就介紹到這了,更多相關Ubuntu安裝Mysql啟用遠端連線內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com