Docker 安装 MySQL、Redis

1 Docker 中安装 Redis

1.1 创建目录

在硬盘上创建 redis 的数据目录:

mkdir -p /Users/yygnb/dockerMe/redis/data

为该目录添加权限:

chown 200 -R /Users/yygnb/dockerMe/redis

1.2 拉取镜像

搜索镜像:

docker search redis

搜索结果:

Docker 安装 MySQL、Redis

拉取官方镜像:

docker pull redis

1.3 启动容器

映射端口 6379 和 data 目录,启动容器:

docker run -itd -p 6379:6379 \
           -v /Users/yygnb/dockerMe/redis/data:/data \
           --restart always \
           --name redis \
           redis

1.4 查看 Redis 状态

docker ps -a | grep redis

Redis 容器运行后,可以通过 RDM 等客户端工具尝试连接。

2 Docker 中安装 MySQL

2.1 创建目录

在硬盘上分别创建 conf(配置文件目录)、data(数据文件目录)、logs(日志文件目录):

mkdir -p /Users/yygnb/dockerMe/mysql/conf /Users/yygnb/dockerMe/mysql/logs /Users/yygnb/dockerMe/mysql/data

为上面三个目录添加权限:

chown 200 -R /Users/yygnb/dockerMe/mysql

2.2 拉取镜像

docker search mysql

搜索结果:

Docker 安装 MySQL、Redis

拉取官方镜像:

docker pull mysql

2.3 创建配置文件

进入上面创建的 mysql/conf 目录下,创建配置文件 my.cnf

cd /Users/yygnb/dockerMe/mysql/conf
touch my.cnf
vi my.cnf

配置文件 my.cnf 内容如下:

Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.

#
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; version 2 of the License.

#
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

#
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA

#
The MySQL  Server configuration file.

#
For explanations see
http://dev.mysql.com/doc/mysql/en/server-system-variables.html

[client]
default-character-set=utf8mb4

[mysql]
default-character-set=utf8mb4

[mysqld]
pid-file        = /var/run/mysqld/mysqld.pid
socket          = /var/run/mysqld/mysqld.sock
datadir         = /var/lib/mysql
secure-file-priv= NULL
Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
max_connections=10000
default-time_zone='+8:00'
character-set-client-handshake=FALSE
character_set_server=utf8mb4
collation-server=utf8mb4_general_ci
init_connect='SET NAMES utf8mb4 COLLATE utf8mb4_general_ci'

Custom config should go here
!includedir /etc/mysql/conf.d/

2.4 启动容器

启动容器,指定3306 端口映射和上面的三个目录映射,同时也指定 MySQL root 账户的密码为 Mysql.123

docker run --name mysql \
  --restart=always \
  -p 3306:3306  \
  -v /Users/yygnb/dockerMe/mysql/conf/my.cnf:/etc/mysql/my.cnf \
  -v /Users/yygnb/dockerMe/mysql/data:/var/lib/mysql \
  -v /Users/yygnb/dockerMe/mysql/logs:/logs \
  --privileged=true \
  -e MYSQL_ROOT_PASSWORD=Mysql.123 \
  -d mysql:latest

2.5 查看 MySQL 状态

docker ps | grep mysql

2.6 修改 MySQL 权限

容器启动后,可以进入容器修改 MySQL 的一些权限,使得外部可以连接。

进入容器:

docker exec -it mysql /bin/bash

登录 MySQL:

mysql -u root -p

输入上面设置的密码 Mysql.123后便在命令行中进入了 MySQL。

依次执行下列 SQL 语句,修改权限:

use mysql;

update user set authentication_string='' where user='root';

alter user 'root'@'%' IDENTIFIED BY 'Mysql.123';

grant all privileges on *.* to 'root'@'%' with grant option;

flush privileges;

全部执行完毕后,可以尝试使用 MySQL Workbench 或 IDEA 或 Navicat 连接 MySQL。

MySQL 8 的 JDBC 连接串一般格式为:

jdbc:mysql://127.0.0.1:3306/db_name?useUnicode=true&characterEncoding=utf8&useSSL=true

驱动为:

com.mysql.cj.jdbc.Driver

Docker 安装 MySQL、Redis

感谢你阅读本文,如果本文给了你一点点帮助或者启发,还请三连支持一下,点赞、关注、收藏,作者会持续与大家分享更多干货

Original: https://www.cnblogs.com/youyacoder/p/16643251.html
Author: 程序员优雅哥(/同)
Title: Docker 安装 MySQL、Redis

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/578497/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • js中对象深度拷贝的方法(浅拷贝)

    JS中,一般的赋值传递的都是对象/数组的引用,并没有真正的深拷贝一个对象(浅拷贝),某些情况下需要用到深度拷贝,可以使用如下写法 let data = {username:&quo…

    Linux 2023年6月14日
    0105
  • Nginx笔记

    实现负载均衡 这里采用的是权重 进入配置文件目录cd /usr/local/nginx/conf/ //实际根据自己的目录来 编辑vim nginx.conf 根据需要在此代码的顶…

    Linux 2023年5月27日
    0103
  • 一篇文章学会shell脚本

    一、Shell传递参数 运行: 二、Shell数组 运行: 三、Shell运算符 1、算术运算符 注意:条件表达式要放在方括号之间,并且要有空格,例如: [$a==$b] 是错误的…

    Linux 2023年5月28日
    099
  • 统计算法_概率基础

    本次有以下函数 1、简单边际概率 2、联合概率 3、条件概率 4、随机变量期望值 5、随机变量方差 6、随机变量协方差 7、联合协方差 8、组合期望回报 9、投资组合风险 说概率前…

    Linux 2023年6月6日
    092
  • MYSQL快速安装整理

    【检查是否已安装过】 find / -name mysql 【快速安装开始】 groupadd mysql ;useradd -g mysql mysql;cd /usr/loca…

    Linux 2023年6月6日
    071
  • Redis

    Redis原创笑笑师弟 最后发布于2018-12-21 14:17:59 阅读数 1780 收藏展开目录 redis简介 redis功能 redis学习步骤 windows系统下的…

    Linux 2023年5月28日
    0107
  • Android recovery支持adb shell

    Android recovery支持adb shell 近期开发过程注意到recovery不支持adb shell。为了便于调试方便,决定添加此功能。 刚開始我们採用的是user版…

    Linux 2023年5月28日
    0104
  • 数据转换-整数字节数组

    任务详情 任务详情0. 在openEuler(推荐)或Ubuntu或Windows(不推荐)中完成下面任务 1 参考《GMT 0009-2012 SM2密码算法使用规范》第6节&#…

    Linux 2023年6月8日
    0144
  • Docker容器搭建android编译环境

    Docker容器搭建android编译环境 .版本:v0.4作者:河东西望日期:2022-7-12. 1.1 手动部署 安装&#…

    Linux 2023年6月7日
    0100
  • API 的 Authorization 头里为啥有个 Bearer

    在我们设计和使用 API 授权的时候,经常会接触到如下内容: Authorization : Bearer Tokenxxxxxx 为什么前面会有个 Bearer,直接弄成这样不是…

    Linux 2023年6月7日
    0112
  • CentOS7 小技巧总结

    1.CentOS7 解决无法使用tab自动补全 csharp;gutter:true; 原因:CentOS在最小化安装时,没有安装自动补全的包,需要手动安装。 yum -y ins…

    Linux 2023年6月7日
    0125
  • Django 如何获取 Model 字段列表?

    在平时的开发过程中,避免不了需要获取 Model 中的字段列表。 那需要把所有字段都再复制一份吗?这样的话就太麻烦了,而且后期也不好维护。 其实,Django 内置了一个方法,可以…

    Linux 2023年6月7日
    0122
  • QString转char *

    故事背景:最近用到阿里云的OSS,里面用到了好多char *,但是我QT里面都是QString,我尝试用QString::fromstdstring(“”)…

    Linux 2023年6月13日
    091
  • subprocess模块简介

    subprocess模块可以执行系统命令,该模块允许用户创建一个新的进程,该进程会连接到input|output|error管道并获取到返回的状态码。 本文版本是以python3….

    Linux 2023年6月7日
    082
  • WPF 修复 ContextMenu 在开启 PerMonitorV2 后所用 DPI 错误

    本文告诉大家如何修复 WPF 的 ContextMenu 在开启 PerMonitorV2 之后,在双屏不同的 DPI 的设备上,在副屏弹出的 ContextMenu 使用了主屏的…

    Linux 2023年6月6日
    090
  • shell批量创建数据表的一个方法

    #!/bin/bash #批量新建数据表 #删除`符号,具体原因我也没搞懂 for i in {1..30};do mysql 地址 -u账号 -p密码 -e "use …

    Linux 2023年5月28日
    094
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球