Docker部署mysql 5.7
Docker部署mysql 5.7
准备工作
在CentOS或者Linux创建部署目录,用于存放容器的配置和MySQL数据;目的是当重装或者升级容器时,配置文件和数据不会丢失。执行以下命令:
a、创建目录:
mkdir -p /container/mysqlb、进入目录:
cd /container/mysqlc、批量创建目录:
mkdir data logsd、更改文件夹权限:
chmod 777 logs
chmod 777 data
准备MySQL部署配置文件
a、编辑MySQL配置文件:
vim /container/mysql/my.cnfb、写入MySQL配置如下(可直接复制粘贴):
# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html # Docker安装最简配置, 仅必要目录属性
[mysqld]
pid-file= /var/run/mysqld/mysqld.pid
socket= /var/run/mysqld/mysqld.sock
datadir= /var/lib/mysql
log-error= /var/log/mysqld-error.log
slow-query-log-file= /var/log/slow-query.log # 如果使用最简配置,则此行之后的配置可忽略
# 开启binlog
server_id=1
log_bin=mysql-bin
binlog_format=ROW # 设置MySQL日志时区和主机一样;不设置的话默认为UTC
log_timestamps=SYSTEM default_storage_engine = InnoDB
performance_schema_max_table_instances = 400
table_definition_cache = 400
lower_case_table_names = 1
skip-external-locking
key_buffer_size = 32M
max_allowed_packet = 100G
table_open_cache = 128
sort_buffer_size = 768K
net_buffer_length = 4K
read_buffer_size = 768K
read_rnd_buffer_size = 256K
myisam_sort_buffer_size = 8M
thread_cache_size = 16
query_cache_size = 16M
tmp_table_size = 32M
sql-mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES character-set-server=utf8mb4
collation-server=utf8mb4_general_ci explicit_defaults_for_timestamp = true
max_connections = 500
max_connect_errors = 100
open_files_limit = 65535 log-bin=mysql-bin
binlog_format=mixed
server-id = 1
expire_logs_days = 10
slow_query_log=1
long_query_time=3
early-plugin-load = "" innodb_data_file_path = ibdata1:10M:autoextend
innodb_buffer_pool_size = 128M
innodb_log_file_size = 64M
innodb_log_buffer_size = 16M
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 50
innodb_max_dirty_pages_pct = 90
innodb_read_io_threads = 1
innodb_write_io_threads = 1 [mysqldump]
quick
max_allowed_packet = 500M [mysql]
no-auto-rehash
default-character-set=utf8mb4 [myisamchk]
key_buffer_size = 32M
sort_buffer_size = 768K
read_buffer = 2M
write_buffer = 2M [mysqlhotcopy]
interactive-timeout
c、保存退出
配置文件授权:
chmod 644 /container/mysql/my.cnf; 如果配置文件授权为777权限,会被MySQL忽略,导致配置文件不生效!
执行以下命令,创建并启动镜像。如果本地没镜像,会自动拉取
docker run -itd \
--restart=always \
--name=mysql \
-p 3306:3306 \
-v /etc/timezone:/etc/timezone:ro \
-v /etc/localtime:/etc/localtime:ro \
-v /container/mysql/my.cnf:/etc/mysql/my.cnf \
-v /container/mysql/data:/var/lib/mysql \
-v /container/mysql/logs:/var/log \
-e MYSQL_ROOT_PASSWORD="root" \
mysql:5.7
命令分析:
- docker run #创建并启动应用
- -itd #-i:开启容器的标准输入STDIN;-t:容器分配伪终端,用于再终端登录容器;-d:后台运行容器
- --restart=always #在容器退出时总是重启容器
- --name="mysql" #容器名称
- -p 3306:3306 #映射主机指定端口到容器的指定端口;冒号前为主机端口,冒号后为容器端口
- -v /etc/timezone:/etc/timezone:ro #使容器时间与主机时区保持一致;ro的意思是只读(read-only)模式,可以保证其挂载卷不被 Docker 容器内部文件系统配置所覆盖。
- -v /etc/localtime:/etc/localtime:ro #使容器时间与主机时间保持一致;
- -v /container/mysql/data:/var/lib/mysql #挂载主机指定目录到容器的指定目录;冒号前为主机目录;挂载的主机目录必须授权777权限
- -e MYSQL_ROOT_PASSWORD="root" #增加环境变量MYSQL_ROOT_PASSWORD,mysql容器创建并启动时,自动设置mysql的登录密码
- mysql:5.7 #要创建并启动容器的mysql镜像
备注:以下参数格式写法等价:
--restart always
--restart "always"
--restart=always
--restart="always"
同理,--name 等写法一样
脚本执行后:
查看容器信息:
docker ps -a查看MySQL日志:
docker logs mysql测试连接登录
此时,一般可以使用navicat等工具进行数据库连接了;如果工具连接不上,可在终端测试连接并授权;命令如下:
进入docker容器MySQL终端:
docker exec -it mysql bashMySQL登录:
mysql -uroot -p'root'MySQL远程登录授权:
grant all privileges on *.* to 'root'@'%' identified by 'root';刷新生效:
flush privileges;最后再次使用navicat工具连接测试即可。
Docker部署mysql 5.7的更多相关文章
- Docker 部署mysql
目录 Docker 部署mysql 步骤 1.查找 Docker Hub 上的 MySQL 镜像 2.docker pull mysql 拉取镜像 3.运行容器 4.查看容器启动情况 使用命令备注 D ...
- docker(部署常见应用):docker部署mysql
上节回顾:docker(部署常见应用):docker部署nginx docker部署mysql:5.7.26 # 下载镜像 docker pull mysql: # 查看镜像 docker image ...
- docker部署mysql Navicat远程连接
docker部署mysql Navicat远程连接 docker search mysql 查看mysql镜像(是去dockerHub网站搜素镜像,遇到问题可以去该网站查看官方文档,纯英文文档估计 ...
- Docker:Docker部署mysql数据库
docker部署mysql : 8.0 1.在宿主机创建mysql挂载目录 #创建目录 mkdir /home/mysql/conf mkdir /home/mysql/logs mkdir /hom ...
- springboot多数据源配合docker部署mysql主从实现读写分离
本篇主要有两部分: 1.使用docker部署mysql主从 实现主从复制 2.springboot项目多数据源配置,实现读写分离 一.使用docker部署mysql主从 实现主从复制 此次使用的是wi ...
- docker 部署mysql tomcat时 在root@localhost~下——-——docker exec -it 容器名 /bin/bash 报错
在docker部署mysql时 报错 找不到 容器不自动启动 , docker start 容器名 也没有效果 多次尝试发现 原因是创建容器时在 下面创建的 更改为下创建 问题解决
- Centos7借助docker部署mysql,提供远程链接服务
Centos7 借助docker部署mysql,并提供远程连接服务 安装docker 运行docker 注意安装docker和运行docker的步骤很简单,可以参考我学习docker的笔记 docke ...
- Docker部署MySql应用
1. MySQL部署 1.1拉取MySQL镜像 docker pull mysql 查看镜像 docker images 1.2创建MySQL容器 docker run -di --name piny ...
- docker 部署mysql redis
先介绍利用的两个数据卷挂载的规则,这对于理解挂载mysql数据库存储非常有帮助. 如果挂载一个空的数据卷到容器中的一个非空目录中,那么这个目录下的文件会被复制到数据卷中. 如果挂载一个非空的数据卷到容 ...
随机推荐
- ACM - 动态规划 - UVA323 Jury Compromise
UVA323 Jury Compromise 题解 考虑用动态规划.该问题要求解的最终状态为,选出的 \(m\) 个人,使得辩方总分与控方总分差的绝对值最小,总分之和最大.即 \(\left| D(\ ...
- CommonsCollection2反序列链学习
CommonsCollection2 1.前置知识 CmonnosCollection2需要用到Javassist和PriorityQueue 1.1.Javassist Javassist是一个开源 ...
- css 垂直居中方法汇总
查看原文可以有更好的排版效果哦 前言 居中是平时工作中的最常见的一种需求,各种图片居中或者各种弹窗,水平居中还好,特别是垂直居中,很多初学者表示太难写了,现在列举一些常用的方法. 实战 这里只讲述cs ...
- 讲清楚之 javascript 参数传值
讲清楚之 javascript 参数传值 参数传值是指函数调用时,给函数传递配置或运行参数的行为,包括通过call.apply 进行传值. 在实际开发中,我们总结javascript参数传值分为基本数 ...
- Hadoop真分布式实现SSH免密登录
首先需要两台服务器(CentOS安装Linux见:https://www.cnblogs.com/syq816/p/12355115.html) 伪分布式的搭建见:https://www.cnblog ...
- 【Python打包成exe方法】——已解决导入第三方包无法打包的问题
前言 在我们写代码的过程中,我们开发的脚本一般都会用到一些第三方包,可能别人也需要用到我们的脚本,如果我们将我们的xx.py文件发给他,他是不能直接用的,他还需要安装python解释器,甚至还要安 ...
- Struts2-从值栈获取list集合数据(三种方式)
创建User封装数据类 public class User { private String username; private String password; public String getP ...
- 小程序已成为超级APP必选项,逐鹿私域“留量”
截止2021年底,中国移动互联网月活跃用规模达到11.74亿人,增速逐渐呈放缓趋势,用户渗透率接近天花板.客户的增长速度越趋于平缓,品牌在不同成长阶段也要适应增长节奏的变化,越来越多主流商家不得不利用 ...
- 1s 创建100G文件,最快的方法是?
在我们日常工作中,为了验证开发的功能,比如:文件上传功能或者算法的处理效率等,经常需要一些大文件进行测试,有时在四处找了一顿之后,发现竟然没有一个合适的,虽然 Linux 中也有一些命令比如:vim. ...
- Codeforces Round #716 (Div. 2), problem: (B) AND 0, Sum Big位运算思维
& -- 位运算之一,有0则0 原题链接 Problem - 1514B - Codeforces 题目 Example input 2 2 2 100000 20 output 4 2267 ...