docker之安裝mysql教程
docker安裝mysql
在平常的開(kāi)發(fā)工作中,我們經(jīng)常需要用到 mysql 數(shù)據(jù)庫(kù)。那么在docker容器中,應(yīng)該怎么安裝mysql數(shù)據(jù)庫(kù)呢。
簡(jiǎn)單來(lái)說(shuō):
- 第一步:拉取鏡像;
- 第二步:創(chuàng)建掛載目錄并設(shè)置 my.conf;
- 第三步:?jiǎn)?dòng)容器,第四步:測(cè)試連接
1:拉取鏡像:docker pull mysql:版本
選擇合適的mysql版本,如 拉取8.0.33版本:docker pull mysql:8.0.33,如果拉取鏡像拉取不成功,那么可以修改宿主機(jī) Docker 的配置文件 /etc/docker/daemon.json,修改鏡像加速器配置。拉取成功后,可以通過(guò) docker images mysql 命令查看:
2:創(chuàng)建掛載目錄 并 配置 my.conf
1)創(chuàng)建掛載目錄:
mkdir -p /docker/mysql/conf mkdir -p /docker/mysql/data mkdir -p /docker/mysql/log
2)創(chuàng)建 my.conf 并配置內(nèi)容:在 conf 文件夾 下新建 my.conf 文件,配置內(nèi)容如下:
[client] default-character-set=utf8mb4 [mysql] default-character-set=utf8mb4 [mysqld] # 設(shè)置東八區(qū)時(shí)區(qū) default-time_zone = '+8:00' # 設(shè)置密碼驗(yàn)證規(guī)則 authentication_policy=mysql_native_password # 限制導(dǎo)入和導(dǎo)出的數(shù)據(jù)目錄 # 為空,不限制導(dǎo)入到處的數(shù)據(jù)目錄 # 指定目錄,必須從該目錄導(dǎo)入到處,且MySQL不會(huì)自動(dòng)創(chuàng)建該目錄 # 為NULL,禁止導(dǎo)入與導(dǎo)出功能 secure_file_priv=/var/lib/mysql init_connect='SET collation_connection = utf8mb4_general_ci' init_connect='SET NAMES utf8mb4' character-set-server=utf8mb4 collation-server=utf8mb4_general_ci skip-character-set-client-handshake sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' skip-name-resolve max_connections=1000 # lower_case_table_names=1 skip-log-bin
3:?jiǎn)?dòng)容器
1) docker run:
docker run --name mysql-8.0.33 \ -e MYSQL_ROOT_PASSWORD=your_password \ -e MYSQL_CHARSET=utf8mb4 \ -e MYSQL_COLLATION=utf8mb4_unicode_ci \ -p 3306:3306 \ -v /docker/mysql:/var/lib/mysql \ -d mysql:8.0.33
命令解釋?zhuān)?/strong>
- a:--name mysql-8.0.33:設(shè)置容器名稱(chēng)
- b:-e MYSQL_ROOT_PASSWORD=your_password:設(shè)置root用戶(hù)密碼
- c:-e MYSQL_CHARSET=utf8mb4:為 MySQL 數(shù)據(jù)庫(kù)設(shè)置字符集為 utf8mb4
- d:-e MYSQL_COLLATION=utf8mb4_unicode_ci:數(shù)據(jù)庫(kù)設(shè)置排序規(guī)則為 utf8mb4_unicode_ci
- e:-p 3306:3306:-p 用于將容器內(nèi)部的端口映射到主機(jī)的端口,將宿主機(jī)3306端口映射到容器3306端口
- f:-v /docker/mysql:/var/lib/mysql:v 是掛載選項(xiàng),用于將主機(jī)上的目錄掛載到容器內(nèi)部的目錄,實(shí)現(xiàn)數(shù)據(jù)的持久化存儲(chǔ)。
- g:/data/mysql:/var/lib/mysql 表示將主機(jī)上的 /data/mysql 目錄掛載到容器內(nèi)的 /var/lib/mysql 目錄,這樣容器內(nèi) MySQL 數(shù)據(jù)庫(kù)的數(shù)據(jù)會(huì)存儲(chǔ)在主機(jī)的 /data/mysql 目錄中,即使容器被刪除,數(shù)據(jù)也不會(huì)丟失。
- h:-d mysql:8.0.33:表示以守護(hù)進(jìn)程模式運(yùn)行容器,即容器將在后臺(tái)運(yùn)行。Docker 將從 Docker Hub 或本地鏡像倉(cāng)庫(kù)拉取該鏡像,如果不存在,則會(huì)先拉取再運(yùn)行。
2)docker-compose.yml,命令 docker compose up -d mysql
version: '1' services: mysql: image: mysql:8.0.33 restart: always container_name: mysql environment: MYSQL_ROOT_PASSWORD: your_password TZ: Asia/Shanghai ports: - "3306:3306" volumes: - /docker/mysql/log:/var/log/mysql - /docker/mysql/data:/var/lib/mysql - /docker/mysql/conf:/etc/mysql/conf.d command: --max_connections=1000 --default-authentication-plugin=mysql_native_password --character-set-server=utf8mb4 --collation-server=utf8mb4_general_ci privileged: true network_mode: "host"
啟動(dòng)完成后,可以使用 docker ps 命令查看當(dāng)前容器啟動(dòng)狀態(tài),可以 使用 docker logs 容器id 或者 docker logs mysql 查看啟動(dòng)日志。
4:測(cè)試
使用數(shù)據(jù)連接客戶(hù)端工具測(cè)試。
總結(jié)
以上為 docker 下 部署 mysql 數(shù)據(jù)庫(kù)的基本步驟,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Docker 中快速安裝tensorflow環(huán)境的方法步驟
這篇文章主要介紹了Docker 中快速安裝tensorflow環(huán)境的方法步驟,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-10-10windows安裝Docker與docker-compose套裝的詳細(xì)教程
這篇文章主要介紹了windows安裝Docker與docker-compose套裝的詳細(xì)教程,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-12-12docker?pull?mysql報(bào)missing?signature?key錯(cuò)誤解決辦法
這篇文章主要給大家介紹了關(guān)于docker?pull?mysql報(bào)missing?signature?key錯(cuò)誤的解決辦法,docker pull mysql命令用于從Docker Hub下載MySQL鏡像,需要的朋友可以參考下2023-11-11利用docker-compsoe部署前后端分離的項(xiàng)目方法
這篇文章主要介紹了利用docker-compsoe部署前后端分離的項(xiàng)目方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08docker常用命令總結(jié)之安裝、鏡像、容器基本操作
這篇文章主要介紹了docker常用命令總結(jié)之安裝、鏡像、容器基本操作,需要的朋友可以參考下2017-05-05通過(guò)Docker為本地DeepSeek-r1部署WebUI界面的完整教程
本文詳細(xì)介紹了如何通過(guò)Docker安裝并配置OpenWebUI,一個(gè)功能豐富的自托管Web用戶(hù)界面,用于與大型語(yǔ)言模型交互,文章步驟包括安裝Docker、配置WSL2、使用dockerrun命令部署OpenWebUI,并提供了詳細(xì)的命令解釋和部署結(jié)果,需要的朋友可以參考下2025-02-02一文教會(huì)你在Docker容器中實(shí)現(xiàn)Mysql主從復(fù)制
MySQL的主從復(fù)制之前也沒(méi)做過(guò),剛百度了下發(fā)現(xiàn)并不算難,所以下面這篇文章主要給大家介紹了關(guān)于在Docker容器中實(shí)現(xiàn)Mysql主從復(fù)制的相關(guān)資料,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下2022-11-11