Docker 部署 MySQL 数据库

Docker 与 docker-compose 安装这里不做介绍。

MySQL 镜橡

  • 根据需要选择版本
# 5.7 版本
docker pull mysql:5.7
# 8.2 版本
docker pull mysql:8.2

创建缩主机目录

cd home
# 创建目录
mkdir mysql && cd mysql
# 存放数据库文件
mkdir data
# 存放数据库日志
mkdir logs
# 存放数据库配置
mkdir conf

my.cnf 配置文件

在缩主机 /home/mysql/conf 目录下创建 my.cnf

[mysqld]
skip-host-cache
skip-name-resolve
datadir=/var/lib/mysql
socket=/var/run/mysqld/mysqld.sock
secure-file-priv=/var/lib/mysql-files
user=mysql

# MySQL监听端口
port=3306
# MySQL绑定IP
# bind_address=127.0.0.1

# 开启二进制日志功能
# log_bin=mysql-bin
# 开启 binlog 后需要创建 function 或 procedure 时要开启
# log_bin_trust_function_creators=1
# 服务id,以区分主库和备库
# server-id=1

# 生成日志
general_log=1
general_log_file=/var/log/mysql/mysql.log

# 无论是否超时,未被索引的记录也会记录下来
log_queries_not_using_indexes=1
# 全局开启慢查询功能
slow_query_log=1
# 慢查询阈值(秒),SQL 执行超过这个阈值将被记录在日志中
long_query_time=1
# 慢查询仅记录扫描行数大于此参数的 SQL
min_examined_row_limit=500
# 指定慢查询日志存储文件的地址和文件名
slow_query_log_file=/var/log/mysql/slow.log

# 错误日志
log_error=/var/log/mysql/error.log
log_error_verbosity = 3

# 开启定时事件
event_scheduler=1
# 表名大小写不敏感
lower_case_table_names=1
# 设置字符集
character_set_server=utf8mb4
collation_server=utf8mb4_bin

# 默认使用的存储引擎
default_storage_engine=InnoDB

[client]
socket=/var/run/mysqld/mysqld.sock

default_character_set=utf8mb4
  • 根据需要开启 binlog
# 开启二进制日志功能
log_bin=mysql-bin
# 开启 binlog 后需要创建 function 或 procedure 时要开启
log_bin_trust_function_creators=1
# 服务id,以区分主库和备库
server-id=1

docker-compose.yml

services:
  mysql:
    image: mysql:5.7
    container_name: mysql
    restart: always
    ports:
      - "3306:3306"
    environment:
      # root 账号密码
      MYSQL_ROOT_PASSWORD: '4NuMDwIzp05BdKp7Bdmf'
      MYSQL_USER: 'Test'
      MYSQL_PASSWORD: 'MySql123456'
    volumes:
      - /etc/localtime:/etc/localtime
      - /home/mysql/data:/var/lib/mysql
      - /home/mysql/conf:/etc/mysql/conf.d
      - /home/mysql/logs:/var/log/mysql
docker-compose up -d mysql
# 查询日志是否启动成功
docker logs -f mysql

给 Test 账号添加权限

登录 root 账号操作。

-- 查询用户在数据库中拥有的所有权限,包括函数权限
SHOW GRANTS FOR 'Test'@'%';
-- 添加所有权限
GRANT ALL PRIVILEGES ON *.* TO 'Test'@'%' WITH GRANT OPTION;
-- 查询数据库版本
select version();
-- 查询数据库字符集
show variables like 'character%';
-- 查看事件计划是否开启
SHOW VARIABLES LIKE '%event_sche%';

相关推荐

  1. Docker 部署 MySQL 数据库

    2024-05-12 08:38:07       35 阅读
  2. docker 部署mysql

    2024-05-12 08:38:07       61 阅读
  3. docker部署mysql5

    2024-05-12 08:38:07       38 阅读
  4. Docker 部署MySQL

    2024-05-12 08:38:07       28 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-05-12 08:38:07       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-05-12 08:38:07       100 阅读
  3. 在Django里面运行非项目文件

    2024-05-12 08:38:07       82 阅读
  4. Python语言-面向对象

    2024-05-12 08:38:07       91 阅读

热门阅读

  1. Mybatis plus 三种分页方式,可以兼容pagehelper

    2024-05-12 08:38:07       36 阅读
  2. PostgreSQL自带的命令行工具21- initdb

    2024-05-12 08:38:07       20 阅读
  3. MySQL 数据库中 Insert 语句的锁机制

    2024-05-12 08:38:07       36 阅读
  4. redis

    redis

    2024-05-12 08:38:07      28 阅读
  5. 1.5编程基础之循环控制 03:均值

    2024-05-12 08:38:07       30 阅读
  6. 深入探索Linux权限管理

    2024-05-12 08:38:07       26 阅读
  7. C# winform opencvsharp 识别轮廓。拟合,找到中心点

    2024-05-12 08:38:07       34 阅读
  8. 12350 安全生产举报投诉特服热线系统解决方案

    2024-05-12 08:38:07       21 阅读
  9. 自建 Spark 集群需要考虑以下几个方面的问题

    2024-05-12 08:38:07       36 阅读