Ubuntu如何安裝Mysql+啟用遠程連接[完整版]

来源:https://www.cnblogs.com/m1ds/archive/2022/06/17/16386828.html
-Advertisement-
Play Games

唉。下麵是我花了不知道多少個小時踩過的所有坑總結出來的血淚史,希望能幫你們少踩一些坑吧,正常來講一步一步下來就不會出現任何問題了。 背景 用的是百度雲的雲伺服器(其他雲伺服器同理),系統是Ubuntu 20.04 LTS,Mysql版本8.0+,需求是在Windows上開發,可以隨時遠程連接讀寫服務 ...


唉。下麵是我花了不知道多少個小時踩過的所有坑總結出來的血淚史,希望能幫你們少踩一些坑吧,正常來講一步一步下來就不會出現任何問題了。

背景

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

建立到伺服器的遠程連接

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

順便私心推薦一個好看又好用的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

image

設置root密碼

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

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

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

image

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

目前為止可以直接在伺服器上用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這一行:
image

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

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

sudo service mysql restart

允許root賬號使用遠程連接

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

mysql -u root -p

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

use mysql;

image

查看賬號的主機許可權:

select user, host from user;

image

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

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

image

退出mysql。

檢查ubuntu自帶的防火牆狀態

sudo ufw status

image

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

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

sudo ufw disable

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

sudo ufw allow 3306

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

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

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

測試連接

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

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


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 一、亮出效果 最近一些軟體的搜題、智能批改類的功能要下線。 退1024步講,要不要自己做一個自動批改的功能啊?萬一哪天孩子要用呢! 昨晚我做了一個夢,夢見我實現了這個功能,如下圖所示: 功能簡介:作對了,能打對號;做錯了,能打叉號;沒做的,能補上答案。 醒來後,我環顧四周,趕緊再躺下,希望夢還能接上 ...
  • 一、需求分析 我們知道,網上有很多的翻譯平臺,比如:Google翻譯、百度翻譯、有道翻譯、微軟翻譯等等。本次我們來使用selenium模塊實現對Google翻譯的爬取的實現。 我們需要上傳一個文件給Google翻譯,然後再將Google翻譯的結果保存在一個文件之中。 當然了,我們是全自動化的處理了啦 ...
  • 一、嘮嘮叨叨 軟體開發過程中,經常需要使用到獲取exe當前目錄這個功能,前同事在實現這個需求時使用的是Directory.GetCurrentDirectory()這個方法,但再最近的測試中,突然發現文件沒有正常生成在exe所在的目錄,找了很久突然發現生成在了自啟動exe程式的bat文件所在的目錄, ...
  • Pod對象的聲明周期(Pod的相位、創建過程、重要行為、探測、重啟策略、終止過程) Pod 對象自從其創建開始至其終止退出的時間範圍稱為其生命周期。在這段時間中,Pod 會處於多種不同的狀態,並執行一些操作;其中,創建主容器(main container)為必須的操作,其他科選的操作還包括進行初始化 ...
  • 鏡像下載、功能變數名稱解析、時間同步請點擊 阿裡雲開源鏡像站 一、Termux 1.Termux簡介 Termux是 Android 平臺上的一個終端模擬器,之所以稱它為“模擬器”而非“虛擬機”,是因為它並非像 PC 端的 VirtualBox 等虛擬機軟體那樣,在宿主機中虛擬出一個完全獨立且完整的系統環境 ...
  • 鏡像下載、功能變數名稱解析、時間同步請點擊 阿裡雲開源鏡像站 前言 開始搭建RK3568的基礎虛擬機,具備基本的通用功能,主要包含了串口工具minicom,遠程登陸ssh,遠程傳輸filezilla,代碼編輯工具vscode。 虛擬機 文檔對對虛擬機做了一些基本要求,如下圖: 為了儘量在前期減少錯誤,應選擇 ...
  • 下載證書 申請證書 證書下載 文件格式為: PEM格式的證書文件。 PEM格式的證書文件是採用Base64編碼的文本文件,您可以根據需要將證書文件修改成其他格式。 KEY格式的證書私鑰文件。 安裝證書 登錄Linux 證書上傳到伺服器 新建存放證書的目錄 mkdir /usr/local/nginx ...
  • CentOS目前官網提供的下載版本有6、7、8,最新的版本為8,不過個人推薦CentOS 7 的版本,因為相比較於最新版本,版本7更加地穩定。而相比於版本6,版本7新增了很多的功能。CentOS 7 是目前主流的版本,穩定成熟,是大多數伺服器首選的版本。話不多說,直入主題。 下載centos官方鏡像 ...
一周排行
    -Advertisement-
    Play Games
  • JWT(JSON Web Token)是一種用於在網路應用之間傳遞信息的開放標準(RFC 7519)。它使用 JSON 對象在安全可靠的方式下傳遞信息,通常用於身份驗證和信息交換。 在Web API中,JWT通常用於對用戶進行身份驗證和授權。當用戶登錄成功後,伺服器會生成一個Token並返回給客戶端 ...
  • 老周在幾個世紀前曾寫過樹莓派相關的 iOT 水文,之所以沒寫 Nano Framework 相關的內容,是因為那時候這貨還不成熟,可玩性不高。不過,這貨現在已經相對完善,老周都把它用在項目上了——第一個是自製的智能插座,這個某寶上50多塊可以買到,搜“esp32 插座”就能找到。一種是 86 型盒子 ...
  • 引言 上一篇我們創建了一個Sample.Api項目和Sample.Repository,並且帶大家熟悉了一下Moq的概念,這一章我們來實戰一下在xUnit項目使用依賴註入。 Xunit.DependencyInjection Xunit.DependencyInjection 是一個用於 xUnit ...
  • 在 Avalonia 中,樣式是定義控制項外觀的一種方式,而控制項主題則是一組樣式和資源,用於定義應用程式的整體外觀和感覺。本文將深入探討這些概念,並提供示例代碼以幫助您更好地理解它們。 樣式是什麼? 樣式是一組屬性,用於定義控制項的外觀。它們可以包括背景色、邊框、字體樣式等。在 Avalonia 中,樣 ...
  • 在處理大型Excel工作簿時,有時候我們需要在工作表中凍結窗格,這樣可以在滾動查看數據的同時保持某些行或列固定不動。凍結窗格可以幫助我們更容易地導航和理解複雜的數據集。相反,當你不需要凍結窗格時,你可能需要解凍它們以獲得完整的視野。 下麵將介紹如何使用免費.NET庫通過C#實現凍結Excel視窗以鎖 ...
  • .NET 部署 IIS 的簡單步驟一: 下載 dotnet-hosting-x.y.z-win.exe ,下載地址:.NET Downloads (Linux, macOS, and Windows) (microsoft.com) .NET 部署 IIS 的簡單步驟二: 選擇對應的版本,點擊進入詳 ...
  • 拓展閱讀 資料庫設計工具-08-概覽 資料庫設計工具-08-powerdesigner 資料庫設計工具-09-mysql workbench 資料庫設計工具-10-dbdesign 資料庫設計工具-11-dbeaver 資料庫設計工具-12-pgmodeler 資料庫設計工具-13-erdplus ...
  • 初識STL STL,(Standard Template Library),即"標準模板庫",由惠普實驗室開發,STL中提供了非常多對信息學奧賽很有用的東西。 vector vetor是STL中的一個容器,可以看作一個不定長的數組,其基本形式為: vector<數據類型> 名字; 如: vector ...
  • 前言 最近自己做了個 Falsk 小項目,在部署上伺服器的時候,發現雖然不乏相關教程,但大多都是將自己項目代碼複製出來,不講核心邏輯,不太簡潔,於是將自己部署的經驗寫成內容分享出來。 uWSGI 簡介 uWSGI: 一種實現了多種協議(包括 uwsgi、http)並能提供伺服器搭建功能的 Pytho ...
  • 1 文本Embedding 將整個文本轉化為實數向量的技術。 Embedding優點是可將離散的詞語或句子轉化為連續的向量,就可用數學方法來處理詞語或句子,捕捉到文本的語義信息,文本和文本的關係信息。 ◉ 優質的Embedding通常會讓語義相似的文本在空間中彼此接近 ◉ 優質的Embedding相 ...