使用 docker 一键部署 MySQL
目录
1. 前期准备
新部署前可以从仓库(repository)下载 MySQL 镜像,或者从已有部署中的镜像生成文件:
-
# 查看当前本地镜像
-
docker images
-
# 生成本地镜像文件
-
docker save <IMAGE ID> -o mysql_8023.tar
2. 导入镜像
-
-
docker load -i mysql_8023.tar
-
docker images
3. 创建部署脚本文件
mysql-deploy.sh 文件内容如下:
-
#!/bin/bash
-
-
# 生成目录
-
mkdir -p /usr/local/docker/mysql/mysql-files
-
mkdir -p /usr/local/docker/mysql/conf
-
mkdir -p /usr/local/docker/mysql/logs
-
mkdir -p /usr/local/docker/mysql/data
-
-
# 将配置文件复制到相应目录
-
cp /root/my.cnf.template /usr/local/docker/mysql/conf/my.cnf
-
-
# 修改属主
-
chown -R polkitd:root /usr/local/docker/mysql/
-
-
# 创建容器
-
docker run -p 3306:3306 \
-
-v /usr/local/docker/mysql/mysql-files:/var/lib/mysql-files \
-
-v /usr/local/docker/mysql/conf:/etc/mysql \
-
-v /usr/local/docker/mysql/logs:/var/log/mysql \
-
-v /usr/local/docker/mysql/data:/var/lib/mysql \
-
-e MYSQL_ROOT_PASSWORD=root \
-
--name mysql \
-
--restart=always \
-
-e TZ=Asia/Shanghai \
-
-d cbe8815cbea8
4. MySQL 服务器配置文件模板
my.cnf.template 文件内容如下:
-
[mysqld]
-
max_allowed_packet = 1G
-
explicit_defaults_for_timestamp=0
-
lower_case_table_names=1
-
log_timestamps=SYSTEM
-
sql_mode='STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION'
-
binlog_expire_logs_seconds=259200
-
secure_file_priv=''
-
log_bin_trust_function_creators=on
-
character-set-server = utf8mb4
-
default_authentication_plugin=mysql_native_password
-
datadir=/var/lib/mysql/
-
socket=/var/run/mysqld/mysqld.sock
-
-
wait_timeout=30
-
innodb_buffer_pool_size = 4G
-
max_connections = 1000
-
-
default-time-zone = ' 8:00'
-
-
port = 3306
-
skip-name-resolve
-
-
innodb_print_all_deadlocks=1
-
log_output='table'
-
-
server-id = 2955
-
-
innodb_max_dirty_pages_pct = 90
-
innodb_lock_wait_timeout = 120
-
-
gtid-mode = off
-
-
local_infile=0
-
log_error='/var/lib/mysql/master.err'
-
skip_symbolic_links=yes
-
-
[mysqldump]
-
quick
-
max_allowed_packet = 1G
-
-
[mysqld_safe]
-
open-files-limit = 8192
5. 执行脚本创建容器
./mysql-deploy.sh
6. 后续工作
-
# 进入容器
-
docker exec -it mysql /bin/bash
-
# 登录 MySQL
-
mysql -uroot -proot -S /var/lib/mysql/mysqld.sock
-
# 创建用户
-
create user dba identified by '123456';
-
grant all on *.* to dba with grant option;
7. 基本维护
-
# 查看镜像
-
docker images
-
# 查看容器
-
docker ps
-
# 查看容器详细信息
-
docker inspect <CONTAINER ID>
-
# 重启容器
-
docker restart mysql
-
# 停止容器
-
docker stop mysql
-
# 删除容器
-
docker rm mysql
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhfifkgf
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
excel下划线不显示怎么办
PHP中文网 06-23 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
photoshop蒙版画笔没反应怎么办
PHP中文网 06-24