Docker安裝Mysql數據庫

1. 前言

XXXXX

2. Docker中安裝MySQL服務

以下以mysql8.2版本為例,mysql5.7的步驟也是一樣的

2.1. 查看可用的MySQL版本

# 搜索鏡像
docker search mysql

2.2. 拉取MySQL鏡像

# 拉取鏡像
docker pull mysql# 或者
docker pull mysql:latest

2.3. 查看本地鏡像

使用以下命令來查看是否已安裝了 mysql鏡像

docker images

2.4. 運行容器

MySQL是常用的關系型數據庫,一般的,希望它能永久的保存數據,哪怕是當容器被刪除了數據也不要刪除,此時就需要把主機文件夾掛載到容器上,這樣可以保證即使容器刪除后新建的MySQL容器可以使用之前的數據。

  • 先準備好本地的目錄
mkdir -p /usr/local/mysql/log
mkdir -p /usr/local/mysql/data
mkdir -p /usr/local/mysql/conf
  • 掛載目錄,啟動容器
# Docker啟動MySQL容器
docker run -p 3306:3306 --name mysql \
-v /usr/local/mysql/log:/var/log/mysql \
-v /usr/local/mysql/data:/var/lib/mysql \
-v /usr/local/mysql/conf:/etc/mysql.d \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql

-p 3306:3306:指定宿主機端口與容器端口映射關系

-v:掛載主機文件夾 /usr/local/mysql/data 到 容器/var/lib/mysql 掛載點

-e:指定容器需要的變量

-it:表示交互式終端;

-d:后臺運行mysql容器

注意:-v /usr/local/mysql/conf:/etc/mysql.d \ 這里對應的是mysql.d很多人都寫成了conf,導致容器啟動失敗

2.5. 查看正在運行的容器

# 查看正在運行的容器
docker ps
# 查看所有的docker容器
docker ps -a

這個時候如果顯示的是up狀態,那就是啟動成功了。如果是restarting,說明是有問題的。我們可以查看日志:

docker logs -f mysql

2.6. 查看容器內部

docker exec -it mysql /bin/bash

2.7. 授權root遠程登錄

  • 進入容器
docker exec -it mysql /bin/bash
  • 登錄mysql
mysql -uroot -p
  • 查看用戶、插件
mysql> use mysql;
Database changed
mysql> select host,user,plugin from user;
+-----------+------------------+-----------------------+
| host      | user             | plugin                |
+-----------+------------------+-----------------------+
| %         | root             | caching_sha2_password |
| localhost | mysql.infoschema | caching_sha2_password |
| localhost | mysql.session    | caching_sha2_password |
| localhost | mysql.sys        | caching_sha2_password |
| localhost | root             | caching_sha2_password |
+-----------+------------------+-----------------------+
5 rows in set (0.00 sec)
mysql> 

查看結果,root@‘localhost’也看到了root@’%‘root@’%‘`。已經有了遠程登錄root@’%',所以可以直接進行遠程連接。

  • 直接退出吧

2.8. 在宿主機連接到容器的MySQL

# 用命令行測試端口連通性
[root@bogon ~]# nc -nv 127.0.0.1 3306
Ncat: Version 7.50 ( https://nmap.org/ncat )
Ncat: Connected to 127.0.0.1:3306.
I
8.2.0
# 查看能不能連接上MySQL
mysql -u root -P 3306 -h 127.0.0.1 -proot
# 查看容器日志
docker logs -f mysql

2.9. 用Navicat連接容器的MySQL

  • 配置連接的參數

image.png

  • 連接上了

image.png

3. 授權root遠程登錄

  • 進入mysql容器
docker exec -it mysql /bin/bash
  • 登錄mysql
mysql -uroot -p
mysql> use mysql
Database changed
mysql> select host,user,plugin from user;
+-----------+------------------+-----------------------+
| host      | user             | plugin                |
+-----------+------------------+-----------------------+
| %         | root             | caching_sha2_password |
| localhost | mysql.infoschema | caching_sha2_password |
| localhost | mysql.session    | caching_sha2_password |
| localhost | mysql.sys        | caching_sha2_password |
| localhost | root             | caching_sha2_password |
+-----------+------------------+-----------------------+
5 rows in set (0.00 sec)mysql>

可以看到出廠就創建了root@'%'賬號。如果沒有就自行創建下把

  • 創建root@'%'賬號
mysql> create user root@'%' identified by 'root';
Query OK, 0 rows affected (0.01 sec)mysql>
  • 授權所有權限給root@'%'賬號
mysql> grant all on *.* to root@'%';
Query OK, 0 rows affected (0.00 sec)mysql> 

3.1. 取消密碼強度限制

  • 卸載"驗證密碼"組件
mysql> UNINSTALL COMPONENT 'file://component_validate_password';
ERROR 3537 (HY000): Component specified by URN 'file://component_validate_password' to unload has not been loaded before.
mysql>

docker的mysql鏡像默認沒有安裝

  • 卸載"驗證密碼"插件
mysql> UNINSTALL PLUGIN validate_password;
ERROR 1305 (42000): PLUGIN validate_password does not exist
mysql> 

docker的mysql鏡像默認沒有安裝

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/208408.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/208408.shtml
英文地址,請注明出處:http://en.pswp.cn/news/208408.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

淺談linux緩沖區的認識!

今天來為大家分享一波關于緩沖區的知識!那么既然我們要談緩沖區,那么就得從是什么?為什么?有什么作用這幾個方面來談論一下緩沖區!然后再通過一些代碼來更加深刻的理解緩沖區的知識! 引言: 是…

【C++ Primer Plus學習記錄】邏輯表達式

一、邏輯OR運算符:|| 如果表達式中的任何一個或全部都為true(或非零),則得到的表達式的值為true;否則,表達式的值為false。 ||的優先級比關系運算符低。 C規定,||運算符是個順序點。即&#…

Navicat 技術指引 | 適用于 GaussDB 分布式的日志查詢與配置設置

Navicat Premium(16.3.3 Windows 版或以上)正式支持 GaussDB 分布式數據庫。GaussDB 分布式模式更適合對系統可用性和數據處理能力要求較高的場景。Navicat 工具不僅提供可視化數據查看和編輯功能,還提供強大的高階功能(如模型、結…

文獻計量學方法與應用、主題確定、檢索與數據采集、VOSviewer可視化繪圖、Citespace可視化繪圖、R語言文獻計量學繪圖分析

目錄 一、文獻計量學方法與應用簡介 二、主題確定、檢索與數據采集 三、VOSviewer可視化繪圖 四、Citespace可視化繪圖 五、R語言文獻計量學繪圖分析 六、論文寫作 七、論文投稿 更多應用 文獻計量學是指用數學和統計學的方法,定量地分析一切知識載體的交叉…

AWS攻略——使用中轉網關(Transit Gateway)連接不同區域(Region)VPC

文章目錄 Peering方案Transit Gateway方案環境準備創建Transit Gateway Peering Connection接受邀請修改中轉網關路由修改被邀請方中轉網關路由修改邀請方中轉網關路由 測試修改Public子網路由 知識點參考資料 區別于 《AWS攻略——使用中轉網關(Transit Gateway)連接同區域(R…

C++_函數重載

前言: 函數重載的意思就是可以有多個同名函數存在,但是這些同名函數的參數列表有著不同情形,以便區分。在C中,支持在同一作用域下可以聲明、定義多個同名函數,但是這些函數的形參類型,類型順序以及參數個數…

AI大規模專題報告:大規模語言模型從理論到實踐

今天分享的AI系列深度研究報告:《AI大規模專題報告:大規模語言模型從理論到實踐》。 (報告出品方:光大證券) 報告共計:25頁 大規模語言模型基本概念 語言是人類與其他動物最重要的區別,而人類…

深入理解 Promise:前端異步編程的核心概念

深入理解 Promise:前端異步編程的核心概念 本文將幫助您深入理解 Promise,這是前端異步編程的核心概念。通過詳細介紹 Promise 的工作原理、常見用法和實際示例,您將學會如何優雅地處理異步操作,并解決回調地獄問題。 異步編程和…

Linux的硬盤管理

本章主要介紹Linux磁盤管理 了解分區的概念對硬盤進行分區swap分區的管理 新的硬盤首先需要對其進行分區和格式化,下面來了解一下硬盤的結構,如圖 硬盤的磁盤上有一個個圈,每兩個圈組成一個磁道。從中間往外發射線,把每個磁道分…

信息系統工程的基本概念

系統是由相互作用和相互依賴的若干部分,按一定規律結合成的、具有特定功能的有機整體。系統有下述特性: (1)集合性。系統是由許多元素有機地組成的整體。每個元素服從整體,追求全局最優。 (2)相…

springboot3遠程調用

RPC 兩個服務器之間的調用 遠程請求 內部服務之間的調用 可以通過 cloud 注冊中心 openfeign等 外部服務的調用 http請求 外部協議 api:遠程接口 sdk:本地調用 調用阿里云的天氣請求

深度學習|詞嵌入的演變

文本嵌入,也稱為詞嵌入,是文本數據的高維、密集向量表示,可以測量不同文本之間的語義和句法相似性。它們通常是通過在大量文本數據上訓練 Word2Vec、GloVe 或 BERT 等機器學習模型來創建的。這些模型能夠捕獲單詞和短語之間的復雜關系&#x…

要求CHATGPT高質量回答的藝術:提示工程技術的完整指南—第 27 章:如何避開和繞過所有人工智能內容檢測器

要求CHATGPT高質量回答的藝術:提示工程技術的完整指南—第 27 章:如何避開和繞過所有人工智能內容檢測器 使用高易錯性和突發性方法 與人工智能生成的文本相比,人類寫作往往具有更多的突發性,這是由于人類往往比人工智能生成的文…

【開源】基于Vue+SpringBoot的陜西非物質文化遺產網站

文末獲取源碼,項目編號: S 065 。 \color{red}{文末獲取源碼,項目編號:S065。} 文末獲取源碼,項目編號:S065。 目錄 一、摘要1.1 項目介紹1.2 項目錄屏 二、功能模塊2.1 設計目標2.2 研究內容2.3 研究方法與…

GEE中Landsat中大改變——Landsat Collection 1 到 Collection 2 影像集合遷移

Landsat Collection 1 到 Collection 2 遷移 本指南提供了從Landsat Collection 1 數據切換 到 Collection 2 數據的說明。自 2022 年以來,集合 2 已在 Earth Engine 中完全可用, 自 2021 年 12 月 31 日以來,美國地質調查局 (USGS) 未生成集合 1 數據。Landsat Collection …

3D點云:平面模型上提取凸(凹)多邊形方法

目錄 一、實現原理 二、實現代碼 三、運行結果 一、實現原理 首先要在點云中提取出潛在平面,對原始點云數據進行濾波,根據提取出的平面模型系數從濾波后的點云進行投影,然后根據投影后的點云計算其對應的二維凹(凸)多邊形。 二、實現代碼 #in

webrtc 設置不獲取鼠標 啟用回聲消除

數 getDisplayMedia()(屬于 navigator.mediaDevices 的一部分)與 getUserMedia() 類似,用于打開顯示內容(或部分內容,如窗口)。返回的 MediaStream 與使用 getUserMedia() 時相同。 顯示鼠標與否 getDisp…

案例064:基于微信小程序的考研論壇設計

文末獲取源碼 開發語言:Java 框架:SSM JDK版本:JDK1.8 數據庫:mysql 5.7 開發軟件:eclipse/myeclipse/idea Maven包:Maven3.5.4 小程序框架:uniapp 小程序開發軟件:HBuilder X 小程序…

正則表達式(7):轉義符

正則表達式(7):正則表達式(5):轉義符 本博文轉載自 此處,我們來認識一個常用符號,它就是反斜杠 “\” 反斜杠有什么作用呢?先不著急解釋,先來看個小例子。 …

【游戲引擎 - C#腳本系統】6、C#端調用C++函數

強烈建議閱讀Mono官方文檔 有mono庫提供的API&#xff0c;這個過程非常簡單&#xff0c;通過mono在C中注冊函數&#xff0c;然后在C#中聲明和調用這些函數 1、在C中注冊Internal Call&#xff1a; C代碼中定義一個函數 static void CppFunc() {std::cout << "這…