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
  • Timer是什麼 Timer 是一種用於創建定期粒度行為的機制。 與標準的 .NET System.Threading.Timer 類相似,Orleans 的 Timer 允許在一段時間後執行特定的操作,或者在特定的時間間隔內重覆執行操作。 它在分散式系統中具有重要作用,特別是在處理需要周期性執行的 ...
  • 前言 相信很多做WPF開發的小伙伴都遇到過表格類的需求,雖然現有的Grid控制項也能實現,但是使用起來的體驗感並不好,比如要實現一個Excel中的表格效果,估計你能想到的第一個方法就是套Border控制項,用這種方法你需要控制每個Border的邊框,並且在一堆Bordr中找到Grid.Row,Grid. ...
  • .NET C#程式啟動閃退,目錄導致的問題 這是第2次踩這個坑了,很小的編程細節,容易忽略,所以寫個博客,分享給大家。 1.第一次坑:是windows 系統把程式運行成服務,找不到配置文件,原因是以服務運行它的工作目錄是在C:\Windows\System32 2.本次坑:WPF桌面程式通過註冊表設 ...
  • 在分散式系統中,數據的持久化是至關重要的一環。 Orleans 7 引入了強大的持久化功能,使得在分散式環境下管理數據變得更加輕鬆和可靠。 本文將介紹什麼是 Orleans 7 的持久化,如何設置它以及相應的代碼示例。 什麼是 Orleans 7 的持久化? Orleans 7 的持久化是指將 Or ...
  • 前言 .NET Feature Management 是一個用於管理應用程式功能的庫,它可以幫助開發人員在應用程式中輕鬆地添加、移除和管理功能。使用 Feature Management,開發人員可以根據不同用戶、環境或其他條件來動態地控制應用程式中的功能。這使得開發人員可以更靈活地管理應用程式的功 ...
  • 在 WPF 應用程式中,拖放操作是實現用戶交互的重要組成部分。通過拖放操作,用戶可以輕鬆地將數據從一個位置移動到另一個位置,或者將控制項從一個容器移動到另一個容器。然而,WPF 中預設的拖放操作可能並不是那麼好用。為瞭解決這個問題,我們可以自定義一個 Panel 來實現更簡單的拖拽操作。 自定義 Pa ...
  • 在實際使用中,由於涉及到不同編程語言之間互相調用,導致C++ 中的OpenCV與C#中的OpenCvSharp 圖像數據在不同編程語言之間難以有效傳遞。在本文中我們將結合OpenCvSharp源碼實現原理,探究兩種數據之間的通信方式。 ...
  • 一、前言 這是一篇搭建許可權管理系統的系列文章。 隨著網路的發展,信息安全對應任何企業來說都越發的重要,而本系列文章將和大家一起一步一步搭建一個全新的許可權管理系統。 說明:由於搭建一個全新的項目過於繁瑣,所有作者將挑選核心代碼和核心思路進行分享。 二、技術選擇 三、開始設計 1、自主搭建vue前端和. ...
  • Csharper中的表達式樹 這節課來瞭解一下表示式樹是什麼? 在C#中,表達式樹是一種數據結構,它可以表示一些代碼塊,如Lambda表達式或查詢表達式。表達式樹使你能夠查看和操作數據,就像你可以查看和操作代碼一樣。它們通常用於創建動態查詢和解析表達式。 一、認識表達式樹 為什麼要這樣說?它和委托有 ...
  • 在使用Django等框架來操作MySQL時,實際上底層還是通過Python來操作的,首先需要安裝一個驅動程式,在Python3中,驅動程式有多種選擇,比如有pymysql以及mysqlclient等。使用pip命令安裝mysqlclient失敗應如何解決? 安裝的python版本說明 機器同時安裝了 ...