docker 安装mysql8.4.0

ops/2024/11/28 18:27:35/

1、拉取mysql8.4.0镜像

docker pullmysql:8.4.0-oraclelinux8

查看镜像

docker images

在这里插入图片描述

2、新建宿主机本地目录:用来挂载MySQL容器所产生的数据的目录

mkdir -p /home/admin/data/mysql /home/admin/logs/mysql /home/admin/conf/mysql

在这里插入图片描述

3、在/home/admin/conf/mysql目录下面创建mysql配置文件my.cnf

[client]
#port=3306
default-character-set=utf8mb4[mysql]
default-character-set=utf8mb4[mysqld]
port=3306
#设置mysql的安装目录
#basedir=/home/admin/app/mysql-8.4.0
#设置mysql数据库的数据的存放目录
#datadir=/home/admin/data/mysql/data
#错误日志目录
#log-error=/home/admin/data/mysql/logs/error.log
#socket=/home/admin/data/mysql/tmp/mysql.sock
#pid-file=/home/admin/data/mysql/tmp/mysql.pid
init_connect='SET collation_connection = utf8mb4_unicode_ci'
init_connect='SET NAMES utf8mb4'
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
#skip-character-set-client-handshake
skip-name-resolve
# 设置不区分大小写
lower_case_table_names=1# 创建数据表时,默认使用的存储引擎
default-storage-engine=INNODB
# 附加的内存池,用来存储 InnoDB 表的内容
#innodb_additional_mem_pool_size=3M
# 置提交日志的时机,若设置为 1,InnoDB 会在每次提交后将事务日志写到磁盘上
innodb_flush_log_at_trx_commit=1
# 来存储日志数据的缓存区的大小
innodb_log_buffer_size=2M
# 缓存的大小,InnoDB 使用一个缓冲池类保存索引和原始数据
innodb_buffer_pool_size=107M
# 日志文件的大小
innodb_log_file_size=54M
# 在 InnoDB 存储引擎允许的线程最大数
innodb_thread_concurrency=18# 默认使用“mysql_native_password”插件认证 ON开启/OFF关闭
# mysql_native_passwordmysql_native_password=ON# 回收空闲连接的时间
wait_timeout = 86400
# 允许同时访问 MySQL 服务器的最大连接数。其中一个连接是保留的,留给管理员专用的
max_connections=100
# 数据库 写入的 数据包 最大值
max_allowed_packet = 512M
# 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=10# 查询时的缓存大小,缓存中可以存储以前通过 SELECT 语句查询过的信息,再次查询时就可以直接从缓存中拿出信息,可以改善查询效率
#query_cache_size=0
# 所有进程打开表的总数
#table_cache=256
# 内存中每个临时表允许的最大大小
tmp_table_size=35M
# 缓存的最大线程数
thread_cache_size=8
# MySQL 重建索引时所允许的最大临时文件的大小
myisam_max_sort_file_size=100G
# 重建索引时的缓存大小
myisam_sort_buffer_size=69M
# 关键词的缓存大小
key_buffer_size=55M
# MyISAM 表全表扫描的缓存大小
read_buffer_size=64K
#将排序好的数据存入该缓存中
read_rnd_buffer_size=256K
#用于排序的缓存大小
sort_buffer_size=256K#开启binlog日志
#当前为单个节点,随机设置一个ID的值
server-id=1
log-bin=mysql-bin
binlog-format=Row# 解决导入脚本时function报错问题
log_bin_trust_function_creators=1# 日志存储天数
#expire_logs_days=7 弃用
#binlog用于控制日志自动清理机制 ON 打卡 OFF关闭
#binlog_expire_logs_auto_purge=ON
#binlog可以以秒为单位进行清理 3天
#binlog_expire_logs_seconds=259200

说明:
docker安装需要注释掉下面这些内容

#设置mysql的安装目录
#basedir=/home/admin/app/mysql-8.4.0
#设置mysql数据库的数据的存放目录
#datadir=/home/admin/data/mysql/data
#错误日志目录
#log-error=/home/admin/data/mysql/logs/error.log
#socket=/home/admin/data/mysql/tmp/mysql.sock
#pid-file=/home/admin/data/mysql/tmp/mysql.pid

4、启动容器,创建MySQL实例

docker run -p 3306:3306 --name mysql8.4.0 --restart=always --privileged=true \-v /home/admin/logs/mysql:/var/log/mysql \-v /home/admin/data/mysql:/var/lib/mysql \-v /home/admin/conf/mysq:/etc/mysql/conf.d \-v /etc/localtime:/etc/localtime:ro \-e MYSQL_ROOT_PASSWORD=123456 \-d mysql:8.4.0-oraclelinux8

参数说明:
\ :这是换行符
-d :后台运行
-p 3306:3306 :设置端口,前面端口是主机端口号,后面是容器端口
--privileged=true : 设置容器的权限。让容器拥有宿主机的root权限
-v /home/admin/data/mysql : 容器卷挂载(格式:-v 要挂载的主机路径:要被挂载的容器路径)
-e MYSQL_ROOT_PASSWORD=123456 :设置MySQL的root密码,这里我设置的密码是123456
--name mysql8.4.0 :给要创建的容器起个名,不起名的话就会默认生成一个名字,不好记
mysql:8.4.0-oraclelinux8 :要运行的镜像(可以用镜像名:版本号来指定也可以用镜像id

使用docker ps 查看容器
在这里插入图片描述
查看mysql日志

docker logs 容器id或者容器名称

例如:

docker logs mysql8.4.0
docker logs ae5b3444d5d9

http://www.ppmy.cn/ops/137434.html

相关文章

HTTP 缓存技术

HTTP 缓存技术 1. 缓存概述 HTTP 缓存技术通过存储已请求资源的副本,减少重复请求、提升响应速度,并节省带宽。缓存可以在客户端、代理服务器、CDN(内容分发网络)等位置进行,能够有效提升 Web 应用的性能、降低服务器…

限制对 etcd 的访问范围是确保 Kubernetes 集群安全的一个重要环节。

限制对 etcd 的访问范围是确保 Kubernetes 集群安全的一个重要环节。通常,etcd 只应当对 Kubernetes 控制平面的组件(如 API Server、Controller Manager、Scheduler 等)以及某些维护工具(如备份工具)开放访问权限&…

泷羽sec学习打卡-shell命令2

声明 学习视频来自B站UP主 泷羽sec,如涉及侵权马上删除文章 笔记的只是方便各位师傅学习知识,以下网站只涉及学习内容,其他的都与本人无关,切莫逾越法律红线,否则后果自负 关于shell的那些事儿-shell2 临时变量和永久变量为什么使用ls、dir命令可以输出一些内容呢?如…

java 集合 菱形内定义封装类 而非基本数据类型 原因解释 详解

在 Java 中&#xff0c;泛型&#xff08;例如 List<E>、Map<K, V>&#xff09;要求使用封装类&#xff08;Wrapper Class&#xff09;而不是基本数据类型&#xff08;Primitive Types&#xff09;。这是因为 Java 泛型的实现机制&#xff08;基于类型擦除&#xff…

Vue 是如何实现数据双向绑定的?

前言 Vue.js 核心特性之一是数据双向绑定&#xff08;Two-way Data Binding&#xff09;&#xff0c;这一特性不仅简化了开发者与数据交互的过程&#xff0c;还大大提升了开发效率和用户体验。那么在 Vue.js 的内部机制中&#xff0c;数据双向绑定究竟是如何实现的呢&#xff…

docker如何安装mysql8

第一步 直接docker pull 拉取镜像 docker pull mysql:8 如果使用这个命令出现类似这种错误 Error response from daemon: Get "https://registry-1.docker.io/v2/": dial tcp 124.11.210.175:443: connect: connection refused 首先看443端口是否在云服务器上打开&a…

数学期望在算法中的应用

数学期望在算法中的应用 数学期望是概率论和统计学中的一个核心概念&#xff0c;主要用于描述所有数据的平均值或者是中心趋势。在计算机算法竞赛中&#xff0c;期望算法属于一个中高等难度的算法&#xff0c;在程序设计中发挥着至关重要的作用。在近些年的 CSP/ USACO 等国际…

Python爬虫爬取网页小说

分析 注意&#xff1a;不同小说url不同&#xff0c;不同小说需采用的正则也不同 1.安装requests包 pip install requests2.导入必要的库 re模块用于进行正则表达式相关的操作&#xff0c;比如使用正则表达式在获取到的网页文本内容中匹配提取特定格式的信息。 resquests模块用…