Docker docker 搭建 mysql

zcx · 2019年10月17日 · 最后由 花开 回复于 2019年10月28日 · 2762 次阅读

搭建 mysql

说明:

  • 搭建步骤:只需顺序执行操作 1~3,其他操作用于再次启动时的命令

1.拉取镜像

docker pull mysql

2.查看镜像

docker images

3.新建容器
若镜像不是最新版本,那么需要在命令里指定版本号 (如 mysql:5.7.25 )

run --name=krystal_mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456  -d mysql:5.7.25

说明:

  • --name= 后面是指定的容器名
  • -p 代表端口映射,格式为 宿主机映射端口:容器运行端口
  • -e 代表添加环境变量
  • MYSQL_ROOT_PASSWORD 是 root 用户的登陆密码
  • mysql:5.7.25 是下载的镜像 + 版本 (若不指定版本,该命令会重新下载 mysql 最新的镜像)

4.查看当前启动状态的容器

docker ps 

5.查看所有容器 (包含未启动的)

docker ps -a

6.启动非启动状态的容器
此步骤用于再次启动容器

docker start ID

说明: ID 是容器 ID(docker ps -a 查询结果)

进入 mysql,进行数据库操作

1.进入容器,进入与 shell 交互页面
以下有两种方式

#最简单的进入方式
docker exec -it <contrainerId>  bash
#这种方式下,数据库才可输入和展示中文数据
docker exec -it <contrainerId> env LANG=C.UTF-8 /bin/bash

2.登陆 mysql

mysql -u root -p


遇到的问题:有一个报错 ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using passwor:yes)原因:密码不正确

3.创建数据库

#创建数据库
create database database_name;
#切换到刚新建的数据库
use database_name;
#查看该数据库下的表
show tables;

4.创建表结构
例子:一个年级的学生名单如下,请用 sql 语句建立如下表。

#加上后边的(character set utf8),才可以插入中文数据
create table TB_Student( id int primary key auto_increment , class char(20), name char(20)) character set utf8;

5.修改表结构

#修改表字段类型(原有列class,修改类型为varchar(50))
alter table TB_Student modify class varchar(50);
#为表增加字段(seq是表的新增列)
alter table TB_Student add seq int;

6.表中插入数据

#插入多条数据
insert into TB_Student values(3,"一班","Angelia"),(4,"一班","Bill");
#插入新纪录,可以不插入id(因为建立表的时候这个字段设置的自增)
insert into TB_Student(class,name) values("二班","Colin");
共收到 5 条回复 时间 点赞

宿主机端口是外网访问的端口,昨天为了用费 3306 端口外网连接数据库,结果 containter 删了启,启了删,最后发现是两边端口反了,留下了没有技术的眼泪😔

汗,这是基本能力吧

zcx #3 · 2019年10月28日 Author
恒温 回复

我就是想做一下自己的学习内容的总结,菜鸟一个,这个网站不允许写基础的东西?如果不允许以后就不在这个上边发了

zcx 回复

可以写的,我的意思是这个是基本能力。

docker pull 不写版本号默认是 latest 启动也一样

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册