Sign inSign up

semon40/mysql

By semon40

•Updated over 3 years ago

该镜像从MySQL官方镜像源拷贝,使用姿势与官方源一致。

Image
0

110

semon40/mysql repository overview

⁠MySQL数据库

基于MySQL官方镜像进行容器创建 官方源⁠,可通过本地配置文件及参数创建进行; 前置准备工作包括创建配置文件my.cnf及创建宿主机文件目录;

  • 创建宿主机文件目录,包括binlog目录、data目录;
  • 创建MySQL配置文件my.cnf;

# my.cnf配置文件
[client]
# 客户端链接默认端口
port = 3306
# socket文件路径配置
socket = /var/lib/mysql/mysql.sock
[mysql]
#登录提示语
prompt = "\u@mysqldb \R:\m:\s [\d]> "
#不使用自动补全功能的 默认是不使用自动补全功能的
no_auto_rehash

# mysqld 服务端配置
[mysqld]
# 设置表名不区分大小写
lower_case_table_names = 1

# mysql服务监听端口
port = 3306
#主从复制或MGR集群中,server_id记得要不同
#另外,实例启动时会生成 auto.cnf,里面的 server_uuid 值也要不同
#server_uuid的值还可以自己手动指定,只要符合uuid的格式标准就可以
server_id = 3306
#MySQL安装文件路径
basedir = /var/lib/mysql
#MySQL数据文件路径
datadir = /var/lib/mysql
#MySQL SOCKET 文件位置
socket = /var/lib/mysql/mysql.sock
pid_file = /var/lib/mysql/mysqldb.pid
#服务器默认字符编码
character_set_server = UTF8MB4
#禁止域名解析(也包括主机名),禁止后登陆授权仅支持IP,不支持主机名或域名
skip_name_resolve = 1
#若你的MySQL数据库主要运行在境外,请务必根据实际情况调整本参数
default_time_zone = "+8:00"
#performance setttings
#事务将等待超时的时间(单位 秒)
lock_wait_timeout = 3600
#mysql打开最大文件数
open_files_limit = 65535
#back_log参数的值指出在MySQL暂时停止响应新请求之前的短时间内多少个请求可以被存在堆栈中。当MySQL主线程在很短的时间内得到非常多的连接请求,该参数就起作用,之后主线程花些时间(尽管很短)检查连接并且启动一个新线程
back_log = 1024
#MySQL无论如何都会保留一个用于管理员(SUPER)登陆的连接,用于管理员连接数据库进行维护操作,即使当前连接数已经达到了max_connections
max_connections = 512
#max_connect_errors是一个MySQL中与安全有关的计数器值,它负责阻止过多尝试失败的客户端以防止暴力破解密码的情况。max_connect_errors的值与性能并无太大关系。
max_connect_errors = 1000
#log settings
log_timestamps = SYSTEM
log_error = /var/lib/mysql/error.log
log_error_verbosity = 3
#开启慢查询
slow_query_log = 1
slow_query_log_file = /var/lib/mysql/slow.log
#超过的时间 单位秒;MySQL能够记录执行时间超过参数 long_query_time 设置值的SQL语句,默认是不记录的。
long_query_time = 5

# binlog日志保存路径
log_bin = /var/lib/mysql/mysql-bin
binlog_expire_logs_seconds = 604800 # mysql8
expire_logs_days = 7 # mysql5.7
#在复制方面的改进就是引进了新的复制技术:基于行的复制。简言之,这种新技术就是关注表中发生变化的记录,而非以前的照抄 binlog 模式。
#从 MySQL 5.1.12 开始,可以用以下三种模式来实现:基于SQL语句的复制(statement-based replication, SBR),基于行的复制(row-based replication, RBR),
#混合模式复制(mixed-based replication, MBR)。相应地,binlog的格式也有三种:STATEMENT,ROW,MIXED。MBR 模式中,SBR 模式是默认的。
binlog_format = ROW
binlog_row_image = FULL

# 参数性能优化
tmp_table_size = 128M
max_heap_table_size = 128M
sort_buffer_size = 32M
join_buffer_size = 32M
read_buffer_size = 32M
read_rnd_buffer_size = 32M
innodb_buffer_pool_size=4G
⁠启动容器

MySQL 镜像启动容器支持使用参数或本地配置文件来配置数据库参数;

⁠参数方式
docker run -dti --name mysql-8  -p 13306:3306  -v /opt/wks/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=xxxxx  --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci semon40/mysql:8.0.32

# 镜像信息需作为启动容器命令的最后参数
# /var/lib/mysql为镜像默认数据文件存储路径,可通过-v挂在至本地目录
# -e 参数可用于指定镜像内置变量配置
# --可用于指定部分mysql配置参数

## MYSQL_ROOT_PASSWORD:配置root用户密码
## MYSQL_DATABASE:配置容器启动时自动创建数据库
## MYSQL_USER/MYSQL_PASSWORD:配置对于MYSQL_DATABASE数据库具备超级用户权限的用户名与密码
## MYSQL_ALLOW_EMPTY_PASSWORD:参数值可为yes或no,当值为yes时,允许root用户密码为空
## MYSQL_RANDOM_ROOT_PASSWORD:参数值为yes时,容器启动时自动生成随机密码
## MYSQL_ONETIME_PASSWORD:强制root第一次登录时修改密码
## MYSQL_INITDB_SKIP_TZINFO:参数值非空时,容器启动自动加载时区至CONVERT_TZ()函数中
⁠本地文件方式
# 本地配置文件方式
docker run  -dti  -- name  mysql-8 -p 13306:3306  -v /opt/wks/mysql/conf.d:/etc/mysql/conf.d   -v  /opt/wks/mysql:/opt/wks/mysql  -e MYSQL_ROOT_PASSWORD=xxxxx   semon40/mysql:8.0.32

## 参数方式内置变量同样适用于本地文件方式
## 镜像默认配置文件路径为/etc/mysql/conf.d,可通过挂载本地配置文件目录进行覆盖

Tag summary

Content type

Image

Digest

sha256:79866c649…

Size

149.3 MB

Last updated

over 3 years ago

docker pull semon40/mysql:8.0.32