Kusch's blog Kusch's blog
首页
Java
框架
部署与运维
数据库
  • 我的电脑
  • 科学技巧
  • 杂文铺
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

Mr.Kusch

入门前把门拆了的程序猿一枚
首页
Java
框架
部署与运维
数据库
  • 我的电脑
  • 科学技巧
  • 杂文铺
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • Linux常用操作

  • Docker部署

    • Dockerfile常用语法
    • Docker部署Nginx
    • Docker部署Mysql
      • Docker部署Mysql
        • 命令
        • 命令解释
        • --privileged=true
        • -e TZ=Asia/Shanghai
        • --init-connect="SET collationconnection=utf8mb40900aici"
        • --init-connect="SET NAMES utf8mb4"
        • --skip-character-set-client-handshake
        • --lowercasetable_names=1
        • 建立用户远程链接
        • 备份与恢复数据
    • Docker部署Nacos
    • Docker部署Jenkins
    • Docker安装ES、Kibana
    • Docker部署Redis
    • Docker部署Sentinel
    • docker-compose常用语法
    • docker-compose部署ELK
  • 常规部署

  • 部署与运维
  • Docker部署
Mr.Kusch
2023-04-17
目录

Docker部署Mysql

# Docker部署Mysql

# 命令

docker run --name mysql8 \
--restart=always \
--privileged=true \
-v /etc/localtime:/etc/localtime \
-v /opt/dockerAllHere/mysql/log:/var/log/mysql \
-v /opt/dockerAllHere/mysql/data:/var/lib/mysql \
-v /opt/dockerAllHere/mysql/conf:/etc/mysql/conf.d \
-v /opt/dockerAllHere/home:/home \
-p 3306:3306 \
-e TZ=Asia/Shanghai \
-e MYSQL_ROOT_PASSWORD=QWER1234qwer \
-d mysql:8.0.33 \
--init-connect="SET collation_connection=utf8mb4_0900_ai_ci" \
--init-connect="SET NAMES utf8mb4" \
--skip-character-set-client-handshake \
--lower_case_table_names=1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

# 命令解释

# --privileged=true

使用该参数,container内的root拥有真正的root权限。 否则,container内的root只是外部的一个普通用户权限。

# -e TZ=Asia/Shanghai

设置容器的时区,防止出现内部和外部时间不一致的问题

# --init-connect="SET collation_connection=utf8mb4_0900_ai_ci"

Client初始化连接Server时,将 collation_connection 排序规则的值设置为 utf8mb4_0900_ai_ci 并作为标志传递给 mysqld 。

# --init-connect="SET NAMES utf8mb4"

Client初始化连接Server时,设置系统变量 NAMES 的值为 utf8mb4 并作为标志传递给 mysqld

# --skip-character-set-client-handshake

用来忽略客户端信息并使用默认服务器字符

# --lower_case_table_names=1

lower_case_table_names 是mysql设置大小写是否敏感的一个参数

lower_case_table_names=0 表名存储为给定的大小和比较是区分大小写的
lower_case_table_names = 1 表名存储在磁盘是小写的,但是比较的时候是不区分大小写
lower_case_table_names=2 表名存储为给定的大小写但是比较的时候是小写的

# 建立用户远程链接

docker exec -it mysql8 /bin/bash

mysql -u root -pQWER1234qwer

create database test_db;

create user 'test'@'%' identified by 'Test@123';

grant all privileges on *.* to test@'%';
1
2
3
4
5
6
7
8
9

# 备份与恢复数据

  • 创建存放备份文件的文件夹
mkdir -p /opt/mysqlbackup
1
  • 备份所有数据库
docker exec mysql8 sh -c 'exec mysqldump --all-databases -uroot -p"$MYSQL_ROOT_PASSWORD"' > /opt/mysqlbackup/all.sql
1
  • 备份单个数据库
docker exec mysql8 sh -c 'exec mysqldump --databases test_db test_db1 -uroot -p"$MYSQL_ROOT_PASSWORD"' > /opt/mysqlbackup/twoDB.sql
1
  • 还原
docker exec -i mysql8 sh -c 'exec mysql -uroot -p"$MYSQL_ROOT_PASSWORD"' < /opt/mysqlbackup/上面生成的SQL文件
1
编辑 (opens new window)
#随笔
上次更新: 2023/05/30, 06:56:38
Docker部署Nginx
Docker部署Nacos

← Docker部署Nginx Docker部署Nacos→

最近更新
01
Linux与Docker的时区
05-30
02
Docker部署Sentinel
05-30
03
Git提交常用表情 转载
05-28
更多文章>
Theme by Vdoing | Copyright © 2023-2023 Mr.Kusch | MIT License | 苏ICP备20030181号-1
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式