Docker下安装MySQL

2021/7/7 19:08:37

本文主要是介绍Docker下安装MySQL,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

 

 

0x01:Docker安装MySQL

  • 下载MySQL镜像
docker pull mysql

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

https://hub.docker.com/_/mysql/

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

  • 启动 MySQL 镜像,指定密码为123456,映射目录/home/xxljobwork,指定默认编码为utf-8

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 目录.

 

输出如下:

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

如果有输出:

 /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 进程

[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

 docker exec -it f5728697fb68 /bin/bash

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

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

  • 在Docker容器下进入MySQL

 mysql -u root -p123456

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

  • 设置MySQL权限

select Host,User,authentication_string from mysql.user;

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

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

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456'; 

flush privileges;

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

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

 

0x02:远程连接MySQL

  • 查看Linux的IP地址

ifconfig

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

  • 使用Navicat连接

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

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

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

 

 



这篇关于Docker下安装MySQL的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程