linux怎么查看本机内存大小
359
2022-10-18
docker--部署mysql5.7并初始化
前戏
大家可能都在服务器上搭建过mysql,或许遇到过不少的坑。但是使用docker部署mysql则很容易
mysql的镜像文档:5.7的镜像
docker pull mysql:5.7
查看镜像
docker images
启动镜像
docker run --name zzmysql -p 3307:3306 -e MYSQL_ROOT_PASSWORD=zou123456 -d mysql:5.7
# 上面的没有挂载,也不是最新的mysql,最新的django已经不支持5.7了,所以这里使用最新的mysql,挂载到本地的 /var/lib/mysql目录下docker run -d --name mydb -v mysql:/var/lib/mysql -p 3307:3306 -e MYSQL_ROOT_PASSWORD=zou123456 mysql
说明:
--name 后面是指定的容器名-p 代表端口映射,格式为 宿主机映射端口:容器运行端口-e 代表添加环境变量MYSQL_ROOT_PASSWORD是root用户的登陆密码mysql:5.7 是下载的镜像+版本(若不指定版本,该命令会重新下载mysql最新的镜像)-d 后台启动
外网访问的是3307端口
进入容器内部
# 最简单的进入方式docker exec -it
我们这里使用简单的进入方式
docker exec
执行建库建表插入数据
-- 建库create database `db_student`;SET character_set_client = utf8;use db_student;-- 建表drop table if exists `user`;CREATE TABLE user (id tinyint(5) zerofill auto_increment not null comment '学生学号',name varchar(20) default null comment '学生姓名',age tinyint default null comment '学生年龄',class varchar(20) default null comment '学生班级',sex char(5) not null comment '学生性别',unique key (id))engine=innodb charset=utf8;-- 插入数据insert into user values('1','小明','15','初三','男');insert into user values('2','小红','13','初二','女');
查询下user表里的数据
可以看出我们查询出来的数据name,classs,sex没有显示,这是因为这个镜像是外国人写得,所以对中文默认不支持
解决不显示中文的问题
这里解决方法有两种,第一种是在进入容器的时候设置环境变量,使用中文就可以了,命令如下,上面也说过
docker exec -it zzmysql env LANG=C.UTF-8 /bin/bash
env LANG=C.UTF-8 设置语言为utf-8
第二种使用dockerfile,在初始化的时候就设置好
创建一个init.sql文件,内容如下(和上面的一样)
创建dockerfile,内容如下
FROM mysql:5.7WORKDIR /docker-entrypoint-initdb.dENV LANG=C.UTF-8ADD
注意:dockerfile和init.sql在同一目录
ADD既可以复制也可以执行init.sql文件,copy只复制
构建docker镜像
docker build -t mysql:zou .
启动容器进入容器内部
docker run --name zzmysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=zou123456 -d mysql:zou
连接数据库,查看数据是否显示
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~