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
  • GoF之工廠模式 @目錄GoF之工廠模式每博一文案1. 簡單說明“23種設計模式”1.2 介紹工廠模式的三種形態1.3 簡單工廠模式(靜態工廠模式)1.3.1 簡單工廠模式的優缺點:1.4 工廠方法模式1.4.1 工廠方法模式的優缺點:1.5 抽象工廠模式1.6 抽象工廠模式的優缺點:2. 總結:3 ...
  • 新改進提供的Taurus Rpc 功能,可以簡化微服務間的調用,同時可以不用再手動輸出模塊名稱,或調用路徑,包括負載均衡,這一切,由框架實現並提供了。新的Taurus Rpc 功能,將使得服務間的調用,更加輕鬆、簡約、高效。 ...
  • 本章將和大家分享ES的數據同步方案和ES集群相關知識。廢話不多說,下麵我們直接進入主題。 一、ES數據同步 1、數據同步問題 Elasticsearch中的酒店數據來自於mysql資料庫,因此mysql數據發生改變時,Elasticsearch也必須跟著改變,這個就是Elasticsearch與my ...
  • 引言 在我們之前的文章中介紹過使用Bogus生成模擬測試數據,今天來講解一下功能更加強大自動生成測試數據的工具的庫"AutoFixture"。 什麼是AutoFixture? AutoFixture 是一個針對 .NET 的開源庫,旨在最大程度地減少單元測試中的“安排(Arrange)”階段,以提高 ...
  • 經過前面幾個部分學習,相信學過的同學已經能夠掌握 .NET Emit 這種中間語言,並能使得它來編寫一些應用,以提高程式的性能。隨著 IL 指令篇的結束,本系列也已經接近尾聲,在這接近結束的最後,會提供幾個可供直接使用的示例,以供大伙分析或使用在項目中。 ...
  • 當從不同來源導入Excel數據時,可能存在重覆的記錄。為了確保數據的準確性,通常需要刪除這些重覆的行。手動查找並刪除可能會非常耗費時間,而通過編程腳本則可以實現在短時間內處理大量數據。本文將提供一個使用C# 快速查找並刪除Excel重覆項的免費解決方案。 以下是實現步驟: 1. 首先安裝免費.NET ...
  • C++ 異常處理 C++ 異常處理機制允許程式在運行時處理錯誤或意外情況。它提供了捕獲和處理錯誤的一種結構化方式,使程式更加健壯和可靠。 異常處理的基本概念: 異常: 程式在運行時發生的錯誤或意外情況。 拋出異常: 使用 throw 關鍵字將異常傳遞給調用堆棧。 捕獲異常: 使用 try-catch ...
  • 優秀且經驗豐富的Java開發人員的特征之一是對API的廣泛瞭解,包括JDK和第三方庫。 我花了很多時間來學習API,尤其是在閱讀了Effective Java 3rd Edition之後 ,Joshua Bloch建議在Java 3rd Edition中使用現有的API進行開發,而不是為常見的東西編 ...
  • 框架 · 使用laravel框架,原因:tp的框架路由和orm沒有laravel好用 · 使用強制路由,方便介面多時,分多版本,分文件夾等操作 介面 · 介面開發註意欄位類型,欄位是int,查詢成功失敗都要返回int(對接java等強類型語言方便) · 查詢介面用GET、其他用POST 代碼 · 所 ...
  • 正文 下午找企業的人去鎮上做貸後。 車上聽同事跟那個司機對罵,火星子都快出來了。司機跟那同事更熟一些,連我在內一共就三個人,同事那一手指桑罵槐給我都聽愣了。司機也是老社會人了,馬上聽出來了,為那個無辜的企業經辦人辯護,實際上是為自己辯護。 “這個事情你不能怪企業。”“但他們總不能讓銀行的人全權負責, ...