国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

使用docker構建并部署MySQL5.7鏡像

這篇具有很好參考價值的文章主要介紹了使用docker構建并部署MySQL5.7鏡像。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。


前言

這幾天在研究如何將服務器和數據庫遷移至docker容器,中間遇到了許多問題,特此寫篇博客記錄一下。


提示:本篇文章主要講解如何在docker容器中構建及部署MySQL

一、docker中部署MySQL主要有哪幾種方式?

  1. 從 CentOS 鏡像中構建 MySQL 容器
  2. 從 MySQL 官方鏡像中構建容器

從 CentOS 鏡像中構建 MySQL 容器可以更好地控制操作系統(tǒng)的版本和配置,而從 MySQL 官方鏡像中構建容器則可以更方便地獲取最新版本的 MySQL。具體選擇哪個鏡像,可以根據自己的需求和實際情況來決定。

下面我們來嘗試上面兩種構建MySQL容器的方式

二、CentOS 鏡像中構建 MySQL 容器

1.編寫Dockerfile

Dockerfile(示例):

# 1. 鏡像基于centos7
FROM centos:7

# 2. 更改鏡像時區(qū)
RUN echo 'Asia/Shanghai' >/etc/timezone
MAINTAINER 作者

# 3. 安裝必要的軟件包
RUN yum -y install epel-release 
RUN yum install initscripts -y

# 4. 安裝jdk
RUN yum install java-1.8.0-openjdk.x86_64 -y

# 5.安裝wget
RUN yum -y install wget

# 6. 安裝MySQL
## 6.1 wget下載MySQL5.7 
RUN wget http://dev.mysql.com/get/mysql57-community-release-el7-7.noarch.rpm
注:【MySQL5.6地址】:http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm

## 6.2 安裝MySQL5.7 
RUN rpm -ivh mysql57-community-release-el7-7.noarch.rpm
注:【MySQL5.6包】:rpm -ivh mysql-community-release-el7-5.noarch.rpm

## 6.3 安裝MySQL5.7 所需秘鑰【MySQL5.6則無需秘鑰】
RUN rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022

## 6.4 執(zhí)行安裝 && 賦予mysql安裝目錄訪問權限
RUN yum -y install mysql-community-server
RUN chown -R root:root /var/lib/mysql

# 7. 將數據庫初始化腳本放入鏡像
COPY ./mysqlinit/init.sql /usr/local/mysql/init.sql

# 8. 暴露端口
EXPOSE 80 3306 443 6379

# 9. 啟動服務
CMD ["/usr/sbin/init"]

2.初始化MySQL

1. docker build 生成MySQL鏡像

docker build -t 鏡像名稱 -f Dockerfile .

2. docker volume 創(chuàng)建數據卷

docker volume create mysql_data

3. docker run 運行容器

docker run --privileged=true -d --name 容器別名 -p 3306:3306 -v mysql_data:/var/lib/mysql 運行的容器ID

注: --privileged=true 參數的意思是以特權的身份去運行容器,否則在容器中運行MySQL【systemctl restart mysqld.service】時會提示無權限
-v 參數的意思是將宿主機的目錄/數據卷和容器目錄進行掛載

4. 進入docker容器

docker exec -it 容器名/容器id bash

5. 啟動mysql

先使用命令查詢mysql是否運行
ps -ef|grep mysql
如果未啟動則執(zhí)行
systemctl restart mysqld.service

6. 查看mysql初始密碼

grep ‘temporary password’ /var/log/mysqld.log

7. 登錄mysql并修改密碼

1. 修改密碼
ALTER USER 'root'@'%' IDENTIFIED BY '你的密碼';
配置新賬號參考:
grant all privileges on *.* to 你的賬號@'%' identified by '你的密碼' with grant option;
2. 刷新密碼改動
flush privileges;

8. mysql一些常見指令

1. 創(chuàng)建數據庫
CREATE DATABASE IF NOT EXISTS 數據庫名稱 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
2. 開啟mysql語句執(zhí)行記錄【但是并不建議用戶開啟 需定期清理 否則會造成日志堆積】
set global general_log=1;
3. 找到日志存放目錄
show variables like 'general%';

三、MySQL 官方鏡像中構建容器

1. 拉取官方鏡像

docker pull mysql:5.7

2. 運行鏡像

創(chuàng)建數據卷

docker volume create mysql_data7

運行鏡像并掛載數據卷

docker run -d -e MYSQL_ROOT_PASSWORD=root --name mysql57 -d -p 13307:3306 -v mysql_data7:/var/lib/mysql -v /usr/local/docker/mysql5.7/log:/var/log/ mysql:5.7

3. 配置鏡像外網訪問

進入鏡像

docker exec -it mysql57 bash

登錄mysql設置允許外網訪問

use mysql;
update user set host = ‘%’ where user = ‘root’;
FLUSH PRIVILEGES;

注意:update user set host = ‘%’ where user = ‘root’; 這一行可能會報錯 但是不用管 依然會生效的

四、MySQL 容器初始化腳本

1. 將sql文件放入docker

docker build 構建容器時放入sql文件

COPY ./mysqlinit/init.sql /usr/local/mysql/init.sql

docker啟動后放入sql文件

docker cp init.sql 容器id:/usr/local/mysql/init.sql

2. 執(zhí)行sql文件

執(zhí)行文件前可以開啟sql執(zhí)行日志

set global general_log=1;

查詢sql執(zhí)行日志輸出目錄

show variables like 'general%';

docker mysql 5.7,docker,mysql,容器
執(zhí)行sql文件

mysql -uroot -p 數據庫名 < /usr/local/mysql/init.sql

五、MySQL 容器本地化部署

本地化部署含義:將MySQL鏡像(含數據)打成包保存到本地,然后部署到需要這臺MySQL的服務器上。
要求MySQL鏡像、MySQL鏡像中的數據庫、mysql配置文件都部署到新服務器上。
我們來看看具體應該如何操作

1. 打包mysql鏡像

1. 打包鏡像

docker save -o <image_file_name>.tar <image_name>

比如執(zhí)行:docker save -o mysql7.tar mysql7 就是將mysql7這個鏡像打包成名稱為mysql7.tar的壓縮包下

2. 找到鏡像掛載數據卷

docker volume inspect mysql_data7

docker mysql 5.7,docker,mysql,容器

注:什么是掛載數據卷?我們知道 docker鏡像每次重啟后數據是會重置的。但是MySQL作為數據庫,對它的任何改動都應該是要被持久化的,這個時候只需在宿主機創(chuàng)建一個數據卷,然后通過-v指令將容器映射到這個數據卷上,這樣容器內MySQL的改動就會保留到宿主機的數據卷上,下次重啟容器時,改動就會被保留

3. 進入掛載目錄

cd /var/lib/docker/volumes/mysql_data7

4. 壓縮鏡像目錄

tar -czvf mysql7.tar.gz _data/

5. 找到原mysql配置文件 my.cnf

[mysqld]
skip-host-cache
skip-name-resolve
datadir=/var/lib/mysql
socket=/var/run/mysqld/mysqld.sock
secure-file-priv=/var/lib/mysql-files
user=mysql
# 表名大小寫不敏感,根據項目實際要求來配置即可
lower_case_table_names=1

# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0

#log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
[client]
socket=/var/run/mysqld/mysqld.sock

!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mysql.conf.d/

上述操作處理完生成三個文件 :
docker mysql 5.7,docker,mysql,容器
6. 將這三個文件放入目標服務器

2. 部署MySQL鏡像

1. 加載鏡像

docker load -i mysql7.tar

加載后即可看到鏡像
docker mysql 5.7,docker,mysql,容器

2. 創(chuàng)建數據卷

docker volume create mysql_data7

3. 查詢數據卷目錄并進入

docker volume inspect mysql_data7

docker mysql 5.7,docker,mysql,容器

3.進入數據卷目錄

cd /var/lib/docker/volumes/mysql_data7

4. 復制備份壓縮包到目錄下 并解壓
docker mysql 5.7,docker,mysql,容器

tar -zxvf mysql7-volume.tar.gz

5.啟動docker鏡像

docker run -d -e MYSQL_ROOT_PASSWORD=root --name mysql7 -d -p 3306:3306 -v mysql_data7:/var/lib/mysql -v /root/my.cnf:/etc/my.cnf mysql7

-e MYSQL_ROOT_PASSWORD代表mysql初始密碼
--name 代表容器啟動別名 -d代表后臺啟動 -p 代表端口映射
-v代表文件/數據卷映射 比如 -v mysql_data7:/var/lib/mysql 代表將宿主機的mysql_data7數據卷映射到容器的/var/lib/mysql目錄下

總結

以上就是今天要講的內容,本文主要介紹了如何使用docker構建及部署mysql5.7鏡像,后續(xù)會介紹更多的docker內容,如有疑問可以在評論區(qū)留言。文章來源地址http://www.zghlxwxcb.cn/news/detail-768230.html

到了這里,關于使用docker構建并部署MySQL5.7鏡像的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯(lián)網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • Docker使用mysql:5.6和 owncloud 鏡像,構建一個個人網盤,安裝搭建私有倉庫 Harbor

    Docker使用mysql:5.6和 owncloud 鏡像,構建一個個人網盤,安裝搭建私有倉庫 Harbor

    在網頁中輸入本機的IP地址 在網頁中輸入本機的IP地址加上:8080,用戶名admin密碼Harbor12345。登錄成功頁面如下:

    2024年02月11日
    瀏覽(43)
  • docker-compose部署nacos2.3.0+mysql5.7

    docker-compose-nacos.yml my.cnf 啟動docker 數據庫啟動成功之后執(zhí)行nacos腳本創(chuàng)建表 如果需要遷移老版本數據 導入csv格式好使

    2024年02月19日
    瀏覽(24)
  • 【Docker構建MySQL8.0鏡像】

    【Docker構建MySQL8.0鏡像】

    拉取成功后就可以看到鏡像了: 這里我們選擇 MySQL 8.0.35 版本,因為在 8.0.33 及其之前的版本被掃出 多個漏洞 ,所以決定使用比較新版本的 8.0.35 。 最好在啟動時自己準備好配置文件 3.1 啟動腳本 注意:上述啟動命令需要修改 密碼 、 日志目錄 、 配置文件目錄 等內容后才能

    2024年01月18日
    瀏覽(29)
  • Docker實踐筆記7:構建MySQL 8鏡像

    本教程將指導您使用Dockerfile構建和運行一個MySQL 8容器。讓我們開始吧! 在您的項目根目錄下創(chuàng)建一個名為Dockerfile的文件。以下是Dockerfile的示例內容: 在src文件夾下創(chuàng)建一個名為my.cnf的文件,該文件包含MySQL的配置信息。您可以根據自己的需求進行配置。以下是一個示例配

    2024年02月03日
    瀏覽(19)
  • 【Docker】MySQL 源碼構建 Docker 鏡像(基于 ARM 64 架構)

    【Docker】MySQL 源碼構建 Docker 鏡像(基于 ARM 64 架構)

    以下內容均來自個人筆記并重新梳理,如有錯誤歡迎指正!如果對您有幫助,煩請點贊、關注、轉發(fā)!歡迎掃碼關注個人公眾號! ?公眾號原文鏈接:MySQL 源碼構建 Docker 鏡像(基于 ARM 64 架構) 背景介紹 近期,筆者正推進公司 MySQL 適配 ARM 64 架構工作,由于一直使用 Docke

    2024年04月15日
    瀏覽(94)
  • 基于mysql5.7制作自定義的docker鏡像,適用于xxl-job依賴的數據庫,自動執(zhí)行初始化腳本(ddl語句和dml語句)

    基于mysql5.7制作自定義的docker鏡像,適用于xxl-job依賴的數據庫,自動執(zhí)行初始化腳本(ddl語句和dml語句)

    xxl-job-admin依賴mysql數據庫,且需執(zhí)行初始化腳本,包括ddl和dml語句。 具體的步驟總結如下: 1、新建數據庫xxl_job 2、創(chuàng)建mysql表table 3、執(zhí)行dml語句,包括新建admin用戶及密碼,創(chuàng)建執(zhí)行器和任務。 毫無疑問,人工每次去操作這些,不僅耗費人力和時間,還容易出錯。 所以,本

    2024年02月11日
    瀏覽(780)
  • Docker安裝Nginx并部署&MySQL容器構建

    Docker安裝Nginx并部署&MySQL容器構建

    將配置文件上傳到conf文件夾(數據庫配置文件已放到置頂資源中) /soft/mysql/conf/my.cnf:/etc/my.cnf目錄為我們配置綁定的目錄 /soft/mysql/data:/var/lib/mysql 是將data目錄與MySQL目錄進行綁定 進入到我們的MySQL容器中(m1為容器名) ?進入容器后登錄到MySQL 輸入密碼后進入到MySQL賦予權限?

    2024年01月19日
    瀏覽(30)
  • 《Docker系列》Docker安裝MySQL 5.7

    《Docker系列》Docker安裝MySQL 5.7

    docker pull mysql 拉取最新MySQL docker pull mysql:5.7 拉取指定版本MySQL 1 拉取mysql 5.7鏡像 2 檢查鏡像 -p 33061:3306 左邊是服務器端口,右邊是容器內端口 --name mysql01 容器名稱 -v /zxy/apps/docker_mysql/mysql01/log:/var/log/mysql 指定日志文件目錄,左邊是服務器目錄,右邊是容器內目錄 -v /zxy/apps/

    2024年02月05日
    瀏覽(63)
  • docker 啟動mysql:5.7報錯

    docker 啟動mysql:5.7報錯

    docker 啟動mysql容器報錯 [Note] [Entrypoint]: Entrypoint script for MySQL Server 5.7.41-1.el7 started. 2023-04-17 09:41:14+00:00 [ERROR] [Entrypoint]: mysqld failed while attempting to check config ? ? ? ? command was: mysqld --verbose --help --log-bin-index=/tmp/tmp.QXg3gZVFVb ? ? ? ? mysqld: Can\\\'t read dir of \\\'/etc/mysql/conf.d/\\\' (Errcode: 2

    2024年02月11日
    瀏覽(37)
  • 使用mysql:5.6和owncloud鏡像構建個人網盤

    使用mysql:5.6和owncloud鏡像構建個人網盤

    使用docker拉取mysql:5.6和owncloud的鏡像 運行鏡像生成容器實例 輸入ip加端口號 設置密碼并登錄,就成功進入了 ? ?

    2024年02月11日
    瀏覽(19)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包