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
  • 用例演示 - 創建實體 本節將演示一些示例用例並討論可選場景。 創建實體 從實體/聚合根類創建對象是實體生命周期的第一步。聚合/聚合根規則和最佳實踐部分 建議為Entity類創建一個主構造函數,以保證創建一個有效的實體。因此,無論何時我們需要創建實體的實例,我們都應該使用那個構造函數 參見下麵的問題 ...
  • 領域邏輯 & 應用邏輯 如前所述,領域驅動設計中的業務邏輯分為兩部分(層):領域邏輯和應用邏輯: 領域邏輯由系統的核心領域規則組成,應用邏輯實現應用特定的用例 雖然定義很明確,但實現起來可能並不容易。您可能無法決定哪些代碼應該位於應用程式層,哪些代碼應該位於領域層。本節試圖解釋其中的差異 多個應用程 ...
  • 表弟大學快畢業了,學了一個學期Python居然還不會寫學生管理系統,真的給我丟臉啊,教他又不肯學,還讓我直接給他寫,我真想兩巴掌上去,最終還是寫了給他,誰讓他是我表弟呢,關鍵時候還是得幫他一把! 寫完了放在那也是放著,所以今天分享給大家吧! 話不多說,咱們直接開始吧! 代碼解析 一、登錄頁面 1、定 ...
  • Zookeeper3.7源碼剖析 能力目標 掌握Zookeeper中Session的管理機制 能基於Client進行Debug測試Session創建/刷新操作 能搭建Zookeeper集群源碼配置 掌握集群環境下Leader選舉啟動過程 能說出Zookeeper選舉過程中的概念 能說出Zookeep ...
  • 前言 今天給大家分享一下我自己寫的筆記,純純的都是乾貨,關於字好像也能看。這是我學python整理出來的一些資料,希望對大家 有用。想要更多的資料那就的給一個關註了… python學習交流Q群:903971231### #導入Counter from collections import Count ...
  • Hi,大家好,我是Mic 一個工作5年的粉絲找到我。 他說: “Mic老師,你要是能回答出這個問題,我就佩服你” 我當場就懵了,現在打賭都這麼隨意了嗎? 我問他問題是什麼,他說“Kafka如何避免重覆消費的問題!” 下麵看看普通人和高手的回答! 普通人: Kafka怎麼避免重覆消費就是我們可以通過 ...
  • 前言 Steam是由美國電子游戲商Valve於2003年9月12日推出的數字發行平臺,被認為是電腦游戲界最大的數位發行平臺之一,Steam平臺是全球最大的綜合性數字發行平臺之一。玩家可以在該平臺購買、下載、討論、上傳和分享游戲和軟體。 而每周的steam會開啟了一輪特惠,可以讓游戲打折,而玩家就會 ...
  • 本篇內容將在上一篇已有的內容基礎上,進一步的聊一下項目中使用JPA的一些高階複雜場景的實踐指導,覆蓋了主要核心的JPA使用場景,可以讓你在需求開發的時候對JPA的使用更加的游刃有餘。 ...
  • 1.路徑處理 1.找模塊:sys.path import sys print(sys.path) - 1.理解 - 1.是python去查找包或模塊 - 2.項目開始根目錄,python內置的目錄 - 3.雖然說python的安裝目錄下也可以存放我們寫的模塊,但是不建議(太多了,不大好找) - 4. ...
  • Go 語言入門練手項目系列 01 基於命令行的圖書的增刪查改 02 文件管理 持續更新中... > 本文來自博客園,作者:Arway,轉載請註明原文鏈接:https://www.cnblogs.com/cenjw/p/gobeginner-proj-bookstore-cli.html 介紹 這是一 ...