连接本地mysql容器

1,597 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

前言

使用的是macOS系统,但是docker命令都是一样的。本地想简单连接个mysql数据库,但是本地没有安装mysql,先不用远程服务器了,就用docker简单的起个mysql容器。已经安装Docker Desktop,mac比较简单,直接下载dmg安装即可。

一、启动镜像

已经安装好docker,可以用docker info查看状态和信息,也可以查看菜单栏有小🐳的图标,即启动成功。

1、下载mysql镜像

docker pull mysql  // 直接下载了最新版本的

2、查看镜像

➜  ~ docker image ls 或者 docker images
REPOSITORY   TAG       IMAGE ID       CREATED      SIZE
mysql        latest    7b94cda7ffc7   6 days ago   446MB

3、启动mysql实例

docker run --name mysql -d -p 6666:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:latest

// --name 为mysql的实例设置别名
// -d 以守护进程运行(后台运行)
// -p 6666为对外暴露的端口(随便选的),3306是内部端口
// -e MYSQL_ROOT_PASSWORD 设置mysql登录密码
// 最后的mysql是启动的镜像名称

4、查看启动容器

➜  ~ docker ps
CONTAINER ID   IMAGE          COMMAND                  CREATED         STATUS         PORTS                               NAMES
0d265e254add   mysql:latest   "docker-entrypoint.s…"   7 minutes ago   Up 7 minutes   33060/tcp, 0.0.0.0:6666->3306/tcp   mysql

docker ps -a  // 查看所有容器(运行中、未运行)
docker inspect mysql // 查看容器信息

5、查看端口

如果忘记容器映射端口,可以通过docker port 容器名 查看,

➜  ~ docker port mysql
3306/tcp -> 0.0.0.0:6666

或者连接数据库端口报错时,检验端口是否开放,容器外命令行执行nc -vz -w 2 127.0.0.1 6666

➜  ~ nc -vz -w 2 127.0.0.1 6666
Connection to 127.0.0.1 port 6666 [tcp/*] succeeded!

6、连接mysql数据库

启动成功后可以通过localhost:6666(暴露的端口),root和123456(密码)连接mysql数据库了,工具可以使用navicat或者DBeaver都行。

这里使用的DBeaver,填入容器对应的端口等信息,可以正常连接成功。

image.png

执行准备好的sql文件,成功导入数据。

image.png

7、停止启动

通过容器ID或容器名 停止启动容器,数据不会丢失。不过如果删除后数据丢失了,可以挂载文件。

docker stop mysql  // 停止mysql(容器名)容器
docker start mysql  // 启动被停止的mysql(容器名)容器

二、操作容器

1、进入容器内部

docker container exec -it mysql /bin/bash
// mysql是上面起的容器别名

2、登录mysql

bash-4.4# mysql -u root -p
Enter password:
Welcome to the MySQL monitor.

3、mysql相关操作

show databases;  // 查看数据库
create database test;  // 创建数据库