docker 學習之一 裝MySQL 供遠程使用 Linux

来源:https://www.cnblogs.com/qiaqia-liu/archive/2023/03/09/17201361.html
-Advertisement-
Play Games

1 文件目錄指令 1 pwd 顯示當前目錄的絕對路徑。 說明當前位置在/home/sora 2 cd 切換到指定目錄。 cd ~ 切換到當前用戶的家目錄:如果當前用戶為root,會切換到/root/,如果當前用戶為普通用戶名字叫做A,會切換到/home/A/。 cd .. 切換到上一級目錄 3 mk ...


因為Linux發行版本的問題折騰了好久,儘量使用LTS的版本。其他版本有時候缺的東西太多了,對新手相當不友好。

大概花了幾天實在沒招了,下了個LTS的版本,再裝時正常了。按照官方文檔都可以搞定了。

使用這個版本的ubuntu-22.04.2-desktop-amd64.iso的,官網上下的,用虛擬機弄個上裝了下,檢查下有沒有聯網。

ping www.baidu.com
  • 首先切root上,不知道前幾個版本時不是也是這個原因,反正到處缺包報錯。最後上這個直接切root。
#用戶叫xman 在 xman-virtual-machine的機子上登錄
xman@xman-virtual-machine:~$ su -
Password: 
root@xman-virtual-machine:~# 

輸入 su - 會讓你輸入密碼,輸入當前賬號的登錄密碼。切成root用戶。安裝許可權最大,但是docker群組有些操作不了,文件夾也訪問不全,

還要授權亂七八糟。

#清空歷史版本
sudo apt-get remove docker docker-engine docker.io containerd runc
#更新下包管理器
sudo apt-get update
#允許https類型的通過
sudo apt-get install \
    ca-certificates \
    curl \
    gnupg \
    lsb-release
#Docker’s official GPG key
sudo mkdir -m 0755 -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
#設定存儲庫
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
#更新包管理器
sudo apt-get update
#如果更新出錯GPGkey有誤 
sudo chmod a+r /etc/apt/keyrings/docker.gpg
sudo apt-get update
#安裝docker
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
#用預設的容器檢查下是否安裝成功
sudo docker run hello-world

以上都完了以後就代表安裝成功,真真的門檻安裝都吃力。

  • 查一下本機對外提供服務的IP,使用這個建立個網橋
ip address

如果聯網了,你大概能看到你的IP,作為對外通訊的IP

 

然後建立個網橋,作為容器和本機的通道,這樣容器通過這個橋使用本機東西對外提供服務

#查看網橋的內容,一般有幾個
docker network ls
#清空沒用的網路
docker network prune
#如果一個網橋被使用中你刪不掉需要先關掉容器,刪除容器,然後刪除
docker stop mycontainer1
docker rm mycontainer1
docker network prune
# 清除不用的網橋後大體乾凈了,就做個自己用本機對外提供服務的IP做
docker network create \
    -o "com.docker.network.bridge.host_binding_ipv4"="192.168.139.129" \
    br0
#檢查下狀態有沒有問題
docker net ls

 

  • 下載MySQL並安裝
#查一下現有的鏡像
docker images
#如果下來了直接裝,沒有下來就下一下,不寫版本預設是last的
docker pull mysql
#然後安裝
docker run -di --privileged=true -p 3306:3306 --network=br0 -v /home/mysql/log:/var/log/mysql -v /home/mysql/data:/var/lib/mysql -v /home/mysql/conf/my.cnf:/etc/mysql/my.cnf -v /home/mysql/mysql-files:/var/lib/mysql-files -e MYSQL_ROOT_PASSWORD=123456 --name my mysql

 

  1. -di d 後臺運行,有守護進程處理 i 可以交互 這個弄了以後就不用手動啟動了
  2. --privileged=true 提升許可權,防止MySQL的有些目錄沒許可權訪問
  3. -p 3306:3306 埠映射 主埠:容器埠 容器的口接到主機上對外提供服務
  4. --network=br0 使用網橋 br0創建此容器,並對外提供服務
  5. -v /home/mysql/log:/var/log/mysql 
  6. -v /home/mysql/data:/var/lib/mysql 
  7. -v /home/mysql/conf/my.cnf:/etc/mysql/my.cnf 
  8. -v /home/mysql/mysql-files:/var/lib/mysql-files 
  9. 主機目錄:容器目錄,把容器的數據和配置文件掛載到主機上防止丟失和配置同步,這個是以前的如果需要改遠程訪問的改 my.cnf文件
  10. -e MYSQL_ROOT_PASSWORD=123456 配置登錄資料庫root用戶的密碼是123456,到時候進容器可以用這個進資料庫
  11. --name my mysql 容器名稱 容器創建依據的鏡像名稱
  •   先進去看看容器,並且切到MySQL中看看允許遠程訪問不
#交互進去my容器中
docker exec -it my /bin/bash
#進入MySQL看看
mysql -uroot -p123456
#切到管理資料庫
use mysql;
#查看下是否允許遠程訪問
select user,host from user;
#如果不允許改下
update user set host ='%' where user ='root';
#刷新許可權
flush privileges;
#如果不想用這個自己建個用戶
CREATE USER 'username'@‘%' IDENTIFIED BY '123';
#然後授權
grant all privileges on *.*  to 'username'@'%' ; 
#同樣刷新一下
flush privileges; #退出MySQL exit; #退出容器 exit

 

  • 遠程連接一下看看

在遠程機器上輸入IP連接一下貌似可以

 

至此搞完。

另外記錄下vi的作業。linux的編輯器對windows轉過來的很不友好。

#可以打開一個這個位置的cnf的文件
vi /home/bin/conf.cnf 
#預設是命令模式,不支持輸入字元,輸入的都是命令
可以使用滾輪HJKL來移動到你想要的行列home|end也可以
移動了以後摁i以後進入編輯模式
shift+字元好像才可以輸入想要的字元,一不註意就跑回命令模式了。
並且上下左右箭頭是ABCD字元,
dd可以刪除一行
delete可以刪除一個字元
u是撤銷更改
連按兩次Esc可以切換到命令模式
想保存摁:
然後q!直接退出忽略更改
wq保存並退出
搞這玩意的時候最好確定你有許可權動這個文件,要不費勁弄完,就笑了。

 

一些想法,一些隨筆,零零碎碎整理下思路。
您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 控制語句:程式預設是順序執行,但在實際項目中需要選擇、迴圈。 1 選擇控制語句if 1.1 if語句的形式 1 if(條件表達式) 2 {//複合語句,若幹條語句的集合 3 語句一; 4 語句二; 5 } 註意:如果條件成立執行大括弧里的所有語句,不成立的話大括弧里的語句都不執行。 if(條件表達式 ...
  • 導出word,以下為導出單個和zip的兩種格式。 CountDownLatch運用 CountDownLatch和ExecutorService 線程池cachedThreadPool.submit 1、CountDownLatch 概念 CountDownLatch可以使一個獲多個線程等待其他線程 ...
  • 如果熟悉 GIthub 我們經常可以在一些開源項目的 PR 上看到會配置測試的驗證以及覆蓋率的報告,並且可以強制覆蓋率不低於設定的值才可以進行 Merge PR。 1.測試 創建一個 xUnit 單元測試項目。 Class /// <summary> /// Represents a class w ...
  • 前言 ASP.NET Core中有很多RateLimit組件,.NET 7甚至推出了官方版本。不過這些組件的主要目標是限制客戶端訪問服務的頻率,在HTTP伺服器崩潰前主動拒絕部分請求。如果請求沒有被拒絕服務會儘可能調用資源儘快處理。 現在有一個問題,有什麼辦法限制響應的發送速率嗎?這在一些需要長時間 ...
  • 腳註,是可以附在文章頁面的最底端的,對某些東西加以說明,印在書頁下端的註文。腳註和章節附註是對文本的補充說明。腳註一般位於頁面的底部,可以作為文檔某處內容的註釋。常用在一些說明書、標書、論文等正式文書用來引註的內容。這篇文章將為您展示如何通過C#/VB.NET代碼,以編程方式在Word中插入或刪除腳註。 ...
  • 自動化測試環境的搭建 :一、安裝 selenium: 安裝方式一: pip install -U selenium 安裝方式二: 手動安裝 selenium: 1、安裝python包,選擇全部組件(pip、安裝過程中配置環境變數)解壓selenium-4.8.2.tar.gz,然後用cmd進入解壓目 ...
  • 一、什麼是Vim Vim是一個類似於Vi的著名的功能強大、高度可定製的文本編輯器,在Vi的基礎上改進和增加了很多特性。代碼補全、編譯及錯誤跳轉等方便編程的功能特別豐富,在程式員中被廣泛使用。和Emacs併列成為類Unix系統用戶最喜歡的文本編輯器。 二、Vim鍵點陣圖 三、Vim的三種模式 Vim 有 ...
  • 一、引言 在之前圍繞STM32的GPIO的基本結構進行了介紹,圖1為STM32的5V容忍的GPIO口內部基本結構圖,圖2為GPIO的基本結構中各個模塊部分的概述。 閱讀GPIO基本結構的內容能夠對GPIO的工作模式有更深的瞭解。正是由於GPIO的結構中包含了多樣性的電路和模塊,因此進行合理的配置組合 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...