当前位置: 首页 > article >正文

docker 安装arm架构mysql8

mysql版本: 8.0.29

拉取myql   (镜像已上传阿里云,解决国内仓库被封的问题)

docker pull docker:8.0.29

通过命令运行docker    (由于安装tars需要关闭 ssl 以及启用 mysql_native_password)

docker run -d --restart=always --net=host -p 3308:3306 -v /usr/local/mysql/data:/var/lib/mysql  -v /usr/local/mysql/conf/my.cnf:/etc/my.cnf -e MYSQL_ROOT_PASSWORD=lbkj168188 -e TZ=Asia/Shanghai  --privileged registry.cn-hangzhou.aliyuncs.com/a_rm64/mysql-arm64:8.0.29 --skip_ssl --default-authentication-plugin=mysql_native_password

通过docker-compose运行docker

services:
  tars-mysql:
    image: mysql:8.0.29
    ports:
      - "3310:3306"
    networks:
      tars_net:
        ipv4_address: 172.25.0.2
    environment:
      MYSQL_ROOT_PASSWORD: "tars@12345"
      TZ: Asia/Shanghai
    restart: always
    volumes:
      - ~/app/tars/framework-mysql:/var/lib/mysql
      - /etc/localtime:/etc/localtime

下载容器内的配置文件

docker cp 容器ID:/etc/my.cnf .

修改配置文件后保存

[mysqld]
# 设置InnoDB缓冲池大小。对于专用服务器,建议从总RAM的70%开始设置;对于非专用服务器,从10%开始。
# 示例:如果你的服务器有4GB RAM,专用服务器可以设置为3GB(约3072M),非专用服务器为400M。
# innodb_buffer_pool_size = 128M

# 启用二进制日志,这对于数据备份和恢复非常重要。
# log_bin

# 这些设置主要用于报告服务器,默认值对事务和快速SELECT操作更快。
# 根据需要调整大小,通过实验找到最佳值。
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M

# 禁用主机缓存,减少DNS解析的依赖,提高性能。
skip-host-cache

# 禁用主机名解析,提高性能。
skip-name-resolve

# 数据目录
datadir=/var/lib/mysql

# 套接字文件位置
socket=/var/run/mysqld/mysqld.sock

# 限制LOAD DATA, SELECT ... OUTFILE, 和 LOAD_FILE()等操作的目录。
secure-file-priv=/var/lib/mysql-files

# 运行MySQL服务的用户
user=mysql

# 禁用SSL (适配tars)
skip_ssl

# 切换回旧的认证插件以增加与旧客户端的兼容性 (适配tars)
default-authentication-plugin=mysql_native_password

# PID文件位置
pid-file=/var/run/mysqld/mysqld.pid

[client]
# 客户端使用的套接字文件位置
socket=/var/run/mysqld/mysqld.sock

# 包含其他配置文件的目录
!includedir /etc/mysql/conf.d/
# 注意:上面的"!includedir"行本身不是注释,它告诉MySQL去包含指定目录下的所有配置文件。
# 如果你想要添加注释来说明这一行的作用,可以在前面加上"#"。
# 例如:
# # 包含其他配置文件的目录
# !includedir /etc/mysql/conf.d/

上传配置文件覆盖容器内文件

docker cp my.cnf 容器ID:/etc/my.cnf

重启容器

docker restart 容器ID

由于 MySQL 8 开始,默认的 authentication plugin 从 mysql_native_password 修改为 caching_sha2_password,需要手动修改 root 用户的 plugin,以此来兼容旧的 mysqlclient 能正常连接 MySQL 8,登录 MySQL 执行以下语句:

#进入容器
docker exec -it 容器ID /bin/bash

#登录mysql
mysql -u root -p

#设置mysql_native_password 密码
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'tars@12345';

#刷新配置
FLUSH PRIVILEGES;

http://www.kler.cn/a/410094.html

相关文章:

  • 全面解读RuoYi 系列项目不同版本与应用场景
  • Java中的集合体系
  • 问题记录-Java后端
  • STM32端口模拟编码器输入
  • docker部署springboot、挂载配置文件
  • 241125学习日志——[CSDIY] [ByteDance] 后端训练营 [15]
  • 代谢组数据分析(二十二):Zscore标准化后主成分分析(PCA)及热图展示
  • vue中el-table合并单元格
  • 【论文解析】HAQ: Hardware-Aware Automated Quantization With Mixed Precision
  • 深入解析常见的设计模式
  • 三种蓝牙架构实现方案
  • python基础练习
  • ThingsBoard安装测试
  • 学习python的第十三天之函数——函数传参中的传值和传址问题
  • 基于FPGA的2FSK调制-串口收发-带tb仿真文件-实际上板验证成功
  • 网络常见命令
  • 美妆连锁新纪元:多门店电商系统如何重塑美妆产业新生态
  • 如何在 UniApp 中实现 iOS 版本更新检测
  • go-rod vs Selenium:自动化测试工具的比较与选择
  • STM32C011开发(1)----开发板测试