首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Docker下安装MySQL

Docker下安装MySQL

作者头像
BUG弄潮儿
修改2021-03-22 17:37:06
修改2021-03-22 17:37:06
1.1K00
代码可运行
举报
文章被收录于专栏:JAVA乐园JAVA乐园
运行总次数:0
代码可运行

0x01:Docker安装MySQL

  • 下载MySQL镜像
代码语言:javascript
代码运行次数:0
运行
复制
docker pull mysql

默认是下载 latest 标签的mysql,那么版本是多少呢?访问以下链接:

代码语言:javascript
代码运行次数:0
运行
复制
https://hub.docker.com/_/mysql/
  • 启动 MySQL 镜像,指定密码为123456,映射目录/home/xxljobwork,指定默认编码为utf-8
代码语言:javascript
代码运行次数:0
运行
复制
docker run -e MYSQL_ROOT_PASSWORD=123456  -p 3306:3306  \
-v /home/xxljobwork:/home/xxljobwork mysql  --character-set-server=utf8mb4      \
--collation-server=utf8mb4_unicode_ci

Docker容器启动的时候,如果要挂载宿主机的一个目录,可以用-v参数指定。上面把宿主机的 /home/xxljobwork 目录挂载到容器的 /home/xxljobwork 目录.

输出如下:

如果有输出:

代码语言:javascript
代码运行次数:0
运行
复制
 /usr/sbin/mysqld: ready for connections. Version: '8.0.23'  socket: '/var/run/mysqld/mysqld.sock'  port: 3306  MySQL Community Server - GPL.

则表示,启动mysql成功!可以看到版本是8.0.23

  • 查看 Docker 进程
代码语言:javascript
代码运行次数:0
运行
复制
[root@localhost huangjinjin]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                               NAMES
f5728697fb68        mysql               "docker-entrypoint.s…"   3 minutes ago       Up 3 minutes        0.0.0.0:3306->3306/tcp, 33060/tcp   clever_banzai
988ebe1ec96c        mongo:latest        "docker-entrypoint.s…"   7 months ago        Up 16 minutes       27017/tcp                           bin_mongo_1
1effa1afa039        redis:latest        "docker-entrypoint.s…"   7 months ago        Up 16 minutes       6379/tcp                            bin_redis_1
  • 进入 Docker
代码语言:javascript
代码运行次数:0
运行
复制
 docker exec -it f5728697fb68 /bin/bash

其中 f5728697fb68 是通过docker ps 查询得到的容器ID。

  • 在Docker容器下进入MySQL
代码语言:javascript
代码运行次数:0
运行
复制
 mysql -u root -p123456
  • 设置MySQL权限
代码语言:javascript
代码运行次数:0
运行
复制
select Host,User,authentication_string from mysql.user;

可以发现,默认已经将 root 用户设置了远程访问,也就是%的那条记录。但是密码和 localhost 的不一样。因此,需要修改密码,并刷新权限。

代码语言:javascript
代码运行次数:0
运行
复制
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456'; 

flush privileges;

注意:不要使用以下命令,执行会报错

代码语言:javascript
代码运行次数:0
运行
复制
grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;

0x02:远程连接MySQL

  • 查看Linux的IP地址
代码语言:javascript
代码运行次数:0
运行
复制
ifconfig
  • 使用Navicat连接

点击连接测试,效果如下:

喜欢,在看

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-03-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 BUG弄潮儿 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档