Docker安装Mysql5.7

文章详细描述了如何在Docker环境下搜索MySQL镜像,选择并拉取MySQL5.7的镜像,然后查看本地镜像,并使用这个镜像启动一个MySQL容器,包括设置端口映射、容器命名、挂载卷和环境变量。此外,还提到了检查docker进程,查看和修改MySQL配置文件以及重启服务以应用配置变更的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

docker、mysql等相关镜像现在需要使用科学下载后,上传到虚机上。

现在国内访问docker源有问题,可以更改docker镜像加速地址,如下:

vim /etc/docker/daemon.json

#插入以下内容

{
    "registry-mirrors": [
            "https://docker-0.unsee.tech",
    		"https://docker.xuanyuan.me",
    		"https://docker.1panel.live",
    		"https://docker.m.daocloud.io"
    ]
}

如上述docker镜像加速地址失效,请更换其他地址。

更新地址后,重启docker

sudo systemctl daemon-reload
sudo systemctl restart docker

查看mysql相关镜像

[root@zk data]# docker search mysql
NAME                                     DESCRIPTION
docker.io/library/mysql                  MySQL is a widely used, open-source relation...
docker.io/library/mariadb                MariaDB Server is a high performing open sou...
docker.io/library/percona                Percona Server is a fork of the MySQL relati...
docker.io/library/phpmyadmin             phpMyAdmin - A web interface for MySQL and M...
docker.io/circleci/mysql                 MySQL is a widely used, open-source relation...
docker.io/bitnami/mysql                  Bitnami MySQL Docker Image
docker.io/bitnami/mysqld-exporter        
docker.io/ubuntu/mysql                   MySQL open source fast, stable, multi-thread...
docker.io/cimg/mysql                     
docker.io/rapidfort/mysql                RapidFort optimized, hardened image for MySQ...
docker.io/google/mysql                   MySQL server for Google Compute Engine
docker.io/rapidfort/mysql8-ib            RapidFort optimized, hardened image for MySQ...
docker.io/hashicorp/mysql-portworx-demo  
docker.io/rapidfort/mysql-official       RapidFort optimized, hardened image for MySQ...
docker.io/newrelic/mysql-plugin          New Relic Plugin for monitoring MySQL databa...
docker.io/databack/mysql-backup          Back up mysql databases to... anywhere!
docker.io/linuxserver/mysql              A Mysql container, brought to you by LinuxSe...
docker.io/bitnamicharts/mysql            
docker.io/mirantis/mysql                 
docker.io/docksal/mysql                  MySQL service images for Docksal - https://d...
docker.io/vitess/mysqlctld               vitess/mysqlctld
docker.io/linuxserver/mysql-workbench    
docker.io/eclipse/mysql                  Mysql 5.7, curl, rsync
docker.io/drud/mysql                     
docker.io/ilios/mysql                    Mysql configured for running Ilios

拉取mysql5.7镜像

[root@zk data]# docker pull mysql:5.7
Resolving "mysql" using unqualified-search registries (/etc/containers/registries.conf)
Trying to pull docker.io/library/mysql:5.7...
Getting image source signatures
Copying blob ac563158d721 done  
Copying blob 72a69066d2fe done  
Copying blob 93619dbc5b36 done  
Copying blob 99da31dd6142 done  
Copying blob 626033c43d70 done  
Copying blob 37d5d7efb64e done  
Copying blob d2ba16033dad done  
Copying blob 0ceb82207cd7 done  
Copying blob 37f2405cae96 done  
Copying blob e2482e017e53 done  
Copying blob 70deed891d42 done  
Copying config c20987f18b done  
Writing manifest to image destination
Storing signatures
c20987f18b130f9d144c9828df630417e2a9523148930dc3963e9d0dab302a76

查看本地mysql5.7镜像

[root@zk data]# docker images
REPOSITORY                  TAG         IMAGE ID      CREATED        SIZE
docker.io/library/rabbitmq  management  44af249989a0  2 weeks ago    282 MB
docker.io/library/mysql     5.7         c20987f18b13  16 months ago  454 MB

使用本地镜像启动mysql5.7

docker run -p 3306:3306 --name mysql --restart=always --privileged=true \
-v /usr/local/mysql/log:/var/log/mysql \
-v /usr/local/mysql/data:/var/lib/mysql \
-v /usr/local/mysql/conf:/etc/mysql \
-v /etc/localtime:/etc/localtime:ro \
-e MYSQL_ROOT_PASSWORD=Htyw123! -d mysql:5.7

启动后日志提示

[root@zk conf]# docker logs mysql
2024-07-23 17:49:53+08:00 [ERROR] [Entrypoint]: mysqld failed while attempting to check config
	command was: mysqld --verbose --help --log-bin-index=/tmp/tmp.kzetVeI3h6
	mysqld: Can't read dir of '/etc/mysql/conf.d/' (Errcode: 2 - No such file or directory)
mysqld: [ERROR] Fatal error in defaults handling. Program aborted!

原因:
检查本地配置目录:检查宿主机的 /usr/local/mysql/conf 目录中是否存在 conf.d 和 mysql.conf.d 子目录,如果不存在,创建这俩子目录。

命令解析:

-p 3306:3306:指定宿主机端口与容器端口映射关系
--name mysql:创建的容器名称
--restart=always:总是跟随docker启动
--privileged=true:获取宿主机root权限
-v /usr/local/mysql/log:/var/log/mysql:映射日志目录,宿主机:容器
-v /usr/local/mysql/data:/var/lib/mysql:映射数据目录,宿主机:容器
-v /usr/local/mysql/conf:/etc/mysql:映射配置目录,宿主机:容器
-v /etc/localtime:/etc/localtime:ro:让容器的时钟与宿主机时钟同步,避免时区的问题,ro是read only的意思,就是只读
-e MYSQL_ROOT_PASSWORD=Htyw123!:指定mysql环境变量,root用户的密码为Htyw123!
-d mysql:5.7:后台运行mysql容器,版本是5.7

docker运行mysql前,需创建mysql相关目录

mkdir -p /usr/local/mysql/log
mkdir -p /usr/local/mysql/data
mkdir -p /usr/local/mysql/conf

查看docker进程

[root@zk share]# docker ps
CONTAINER ID  IMAGE                        COMMAND     CREATED      STATUS                PORTS                   NAMES
65a77b1bc961  docker.io/library/mysql:5.7  mysqld      5 hours ago  Up About an hour ago  0.0.0.0:3306->3306/tcp  mysql
[root@zk share]# docker ps -a
CONTAINER ID  IMAGE                        COMMAND     CREATED      STATUS                PORTS                   NAMES
65a77b1bc961  docker.io/library/mysql:5.7  mysqld      5 hours ago  Up About an hour ago  0.0.0.0:3306->3306/tcp  mysql
[root@zk share]# 

查看mysql容器相关日志

docker logs --tail=200 -f mysql

进入mysql容器内部

docker exec -it mysql /bin/bash

修改mysql配置文件
添加如下配置

vim /usr/local/mysql/conf/my.conf

[client]
default-character-set=utf8mb4

[mysql]
default-character-set=utf8mb4

[mysqld]
#设置密码验证规则
default_authentication_plugin=mysql_native_password
#限制导入导出的数据目录
#为空,不限制导入导出目录;
#指定目录,必须从改目录导入导出,且mysql不会自动创建该目录;
#为NULL,禁止导入导出功能
secure_file_priv=

skip-character-set-client-handshake
skip-name-resolve

重启mysql服务,使配置文件生效

docker restart mysql
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值