900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > docker-compose快速启动mysql和redis(提供外部客户端可连接)

docker-compose快速启动mysql和redis(提供外部客户端可连接)

时间:2022-11-30 06:03:19

相关推荐

docker-compose快速启动mysql和redis(提供外部客户端可连接)

适用于个人开发快速部署中间件

先定义一下docker-compose.yaml 文件,在当前目下可用一下命令

启动命令 docker-compose up -d关闭命令 docker-compose down

version: '2.2'services:#redis容器 - Redis containerredis:image: redis:6.2.5container_name: redisports:- 36379:6379environment:# 时区上海 - Time zone Shanghai (Change if needed)TZ: Asia/Shanghaivolumes:# 数据文件 - data files- ./data/redis/data:/data:rw- # 注意这里需要先 /usr/local/app/redis/conf 新建redis.conf文件 redis.conf文件可从/下载- ./data/redis/data/redis.conf:/usr/local/etc/redis/redis.conf- ./data/redis/data/logs:/logscommand: "redis-server /usr/local/etc/redis/redis.conf --requirepass G62m50oigInC30sf --appendonly yes"privileged: truerestart: alwaysnetworks:- mywebmysql:image: mysql/mysql-server:8.0.28container_name: mysqlenvironment:# 时区上海 - Time zone Shanghai (Change if needed)TZ: Asia/Shanghai# root 密码 - root passwordMYSQL_ROOT_PASSWORD: PXDN93VRKUm8TeE7ports:- 3305:3306volumes:# 数据挂载 - Data mounting- ./data/mysql/data:/var/lib/mysql# 日志command:# 将mysql8.0默认密码策略 修改为 原先 策略 (mysql8.0对其默认策略做了更改 会导致密码无法匹配)# Modify the Mysql 8.0 default password strategy to the original strategy (MySQL8.0 to change its default strategy will cause the password to be unable to match)--default-authentication-plugin=mysql_native_password--character-set-server=utf8mb4--collation-server=utf8mb4_general_ci--explicit_defaults_for_timestamp=true--lower_case_table_names=1privileged: truerestart: alwaysnetworks:- mywebnetworks:myweb:driver: bridge

启动之后项目里会有这样的文件夹

redis 的客户端连接,需要根据将127.0.0.1 改成0.0.0.0 即可外部客户端连接

可参考我写的redis.conf

// An highlighted block# 是否以后台进程运行daemonize yes# pid文件位置pidfile /var/run/redis/redis-server.pid# 监听端口port 6379# 绑定地址,如外网需要连接,设置0.0.0.0bind 0.0.0.0# 连接超时时间,单位秒timeout 300##日志级别,分别有:# debug :适用于开发和测试# verbose :更详细信息# notice :适用于生产环境# warning :只记录警告或错误信息loglevel notice# 日志文件位置logfile /var/log/redis/redis-server.log# 是否将日志输出到系统日志syslog-enabled no# 设置数据库数量,默认数据库为0databases 16############### 快照方式 ################ 在900s(15m)之后,至少有1个key发生变化,则快照save 900 1# 在300s(5m)之后,至少有10个key发生变化,则快照save 300 10# 在60s(1m)之后,至少有1000个key发生变化,则快照save 60 10000# dump时是否压缩数据rdbcompression yes# 数据库(dump.rdb)文件存放目录dir /var/lib/redis############### 主从复制 ################主从复制使用,用于本机redis作为slave去连接主redisslaveof <masterip> <masterport>#当master设置密码认证,slave用此选项指定master认证密码masterauth <master-password>#当slave与master之间的连接断开或slave正在与master进行数据同步时,如果有slave请求,当设置为yes时,slave仍然响应请求,此时可能有问题,如果设置no时,slave会返回"SYNC with master in progress"错误信息。但INFO和SLAVEOF命令除外。slave-serve-stale-data yes############### 安全 ################配置redis连接认证密码requirepass G62m50oigInC30sf############### 限制 ################设置最大连接数,0为不限制maxclients 128##内存清理策略,如果达到此值,将采取以下动作:# volatile-lru :默认策略,只对设置过期时间的key进行LRU算法删除# allkeys-lru :删除不经常使用的key# volatile-random :随机删除即将过期的key# allkeys-random :随机删除一个key# volatile-ttl :删除即将过期的key# noeviction :不过期,写操作返回报错maxmemory <bytes># 如果达到maxmemory值,采用此策略maxmemory-policy volatile-lru# 默认随机选择3个key,从中淘汰最不经常用的maxmemory-samples 3############### 附加模式 ################ AOF持久化,是否记录更新操作日志,默认redis是异步(快照)把数据写入本地磁盘appendonly no# 指定更新日志文件名appendfilename appendonly.aof## AOF持久化三种同步策略:# appendfsync always #每次有数据发生变化时都会写入appendonly.aof# appendfsync everysec #默认方式,每秒同步一次到appendonly.aof# appendfsync no #不同步,数据不会持久化# 当AOF日志文件即将增长到指定百分比时,redis通过调用BGREWRITEAOF是否自动重写AOF日志文件。no-appendfsync-on-rewrite no############### 虚拟内存 ################ 是否启用虚拟内存机制,虚拟内存机将数据分页存放,把很少访问的页放到swap上,内存占用多,最好关闭虚拟内存vm-enabled no# 虚拟内存文件位置vm-swap-file /var/lib/redis/redis.swap# redis使用的最大内存上限,保护redis不会因过多使用物理内存影响性能vm-max-memory 0# 每个页面的大小为32字节vm-page-size 32# 设置swap文件中页面数量vm-pages 134217728# 访问swap文件的线程数vm-max-threads 4############### 高级配置 ################ 哈希表中元素(条目)总个数不超过设定数量时,采用线性紧凑格式存储来节省空间hash-max-zipmap-entries 512# 哈希表中每个value的长度不超过多少字节时,采用线性紧凑格式存储来节省空间hash-max-zipmap-value 64# list数据类型多少节点以下会采用去指针的紧凑存储格式list-max-ziplist-entries 512# list数据类型节点值大小小于多少字节会采用紧凑存储格式list-max-ziplist-value 64# set数据类型内部数据如果全部是数值型,且包含多少节点以下会采用紧凑格式存储set-max-intset-entries 512# 是否激活重置哈希activerehashing yes

mysql外部客户端连接,先进入该容器,然后密码登陆, 修改用户名root,最后刷新

docker container ls docker exec -it 容器id bashmysql -u root -puse mysql;update user set Host = '%' where Host = 'localhost' and User='root';flush privileges;

最后,将云服务器的安全组放开相对应的端口(本文是3305、36379),用宝塔的需要在安全里把端口放行其他的防火墙同理。
到此,Linux上的mysql、redis的快速搭建已经完成,可使用Windows的客户端工具进行连接开发…

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。