ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

Docker:docker安装MySQL并同步数据到本机

2022-01-10 09:34:09  阅读:180  来源: 互联网

标签:03 polkitd MySQL Jan mysql input Docker 本机


Docker:docker安装MySQL并同步数据到本机

先了解MySQL启动方式

MySQL启动是要设置密码的,因此去官方查看启动命令。
MySQL dockerhub地址:https://registry.hub.docker.com/_/mysql

# 管帆帆测试运行命令
$ docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag

# 参数解析
-e代表配置环境;
MYSQL_ROOT_PASSWORD此变量是强制性的,并指定将为MySQL超级用户帐户设置的密码

拉取MySQL镜像

我这里指定拉取5.7的MySQL版本

# MySQL镜像,TAG[5.7]
[root@localhost /]# docker pull mysql:5.7

MySQL数据持久化到本地

MySQL数据持久化问题,数据不能只存在容器中,不安全,需要同步到本地。

第一次启动,设置MYSQL_ROOT_PASSWORD

docker run -d -p 3306:3306 -v /home/mysql/conf:/etc/mysql/conf.d -v/home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql01 mysql:5.7

参数解析
-d 后台运行
-p 端口映射
-v 卷挂载
-e 环境配置

查看目录挂载情况

Mounts信息

"Mounts": [
            {
                "Type": "bind",
                "Source": "/home/mysql/conf",
                "Destination": "/etc/mysql/conf.d",
                "Mode": "",
                "RW": true,
                "Propagation": "rprivate"
            },
            {
                "Type": "bind",
                "Source": "/home/mysql/data",
                "Destination": "/var/lib/mysql",
                "Mode": "",
                "RW": true,
                "Propagation": "rprivate"
            }
        ],

本机目录查看

[root@localhost /]# docker run -d -p 3306:3306 -v /home/mysql/conf:/etc/mysql/conf.d -v/home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql01 mysql:5.7
54d46f730f41d9aacb1c79e34cf8fbaa12b5fb7f2cb9b1d95a9632c8907a9b16
[root@localhost /]# cd /home/mysql/data
[root@localhost data]# ll
total 188484
-rw-r-----. 1 polkitd input       56 Jan  6 03:14 auto.cnf
-rw-------. 1 polkitd input     1680 Jan  6 03:14 ca-key.pem
-rw-r--r--. 1 polkitd input     1112 Jan  6 03:14 ca.pem
-rw-r--r--. 1 polkitd input     1112 Jan  6 03:14 client-cert.pem
-rw-------. 1 polkitd input     1680 Jan  6 03:14 client-key.pem
-rw-r-----. 1 polkitd input     1352 Jan  6 03:14 ib_buffer_pool
-rw-r-----. 1 polkitd input 79691776 Jan  6 03:33 ibdata1
-rw-r-----. 1 polkitd input 50331648 Jan  6 03:33 ib_logfile0
-rw-r-----. 1 polkitd input 50331648 Jan  6 03:14 ib_logfile1
-rw-r-----. 1 polkitd input 12582912 Jan  6 03:33 ibtmp1
drwxr-x---. 2 polkitd input     4096 Jan  6 03:14 mysql
drwxr-x---. 2 polkitd input     8192 Jan  6 03:14 performance_schema
-rw-------. 1 polkitd input     1676 Jan  6 03:14 private_key.pem
-rw-r--r--. 1 polkitd input      452 Jan  6 03:14 public_key.pem
-rw-r--r--. 1 polkitd input     1112 Jan  6 03:14 server-cert.pem
-rw-------. 1 polkitd input     1680 Jan  6 03:14 server-key.pem
drwxr-x---. 2 polkitd input     8192 Jan  6 03:14 sys
[root@localhost data]#

数据持久化

# 强制删除运行中的容器
docker rm rf 1d2db7256fa2

即使删除掉容器,本地数据依然存在。

MySQL环境变量:Environment Variables

变量名含义
MYSQL_ROOT_PASSWORD此变量是强制性的,并指定将为MySQL超级用户帐户设置的密码
MYSQL_DATABASE此变量是可选的,允许您指定要在映像启动时创建的数据库的名称。如果提供了用户/密码(请参见下面),则将授予该用户对此数据库的超级用户访问权限(对应于授予ALL)。
MYSQL_USER,MYSQL_PASSWORD这些变量是可选的,用于创建新用户和设置该用户的密码。对于MySQL_DATABASE变量指定的数据库,将授予该用户超级用户权限(参见上文)。创建用户需要这两个变量。请注意,没有必要使用此机制来创建超级用户,默认情况下,该用户将使用MySQL_ROOT_Password变量指定的密码创建该用户。
MYSQL_ALLOW_EMPTY_PASSWORD这是一个可选变量。设置为非空值,如“YES”,允许以根用户的空白密码启动容器。注意:不建议将这个变量设置为YES,除非您真正知道自己在做什么,因为这将使MySQL实例完全不受保护,允许任何人获得完全的超级用户访问权限。
MYSQL_RANDOM_ROOT_PASSWORD这是一个可选变量。设置为非空值,比如是,为根用户生成一个随机的初始密码(使用pwgen)。生成的根密码将打印到stdout(生成的根密码:.)。
MYSQL_ONETIME_PASSWORD设置root(不是MySQL_USER中指定的用户!)用户在完成后即过期,迫使用户在第一次登录时更改密码。任何非空值都将激活此设置。注意:MySQL 5.6+只支持此特性。在MySQL5.5上使用此选项将在初始化期间抛出一个适当的错误。
MYSQL_INITDB_SKIP_TZINFO默认情况下,入口点脚本会自动加载转换_tz()函数所需的时区数据。如果不需要,则任何非空值都将禁用时区加载。

标签:03,polkitd,MySQL,Jan,mysql,input,Docker,本机
来源: https://blog.csdn.net/qq_41929714/article/details/122345034

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有